2014-03-26 34 views
0

我是新來敲除和JavaScript。我想在輸入框上創建輸入值,並且該值打印在document.write上,但kotext值不會在testText上更新並更改輸入框中的值。我想繼續打印出document.writearray push(textKo)的值。Knockout observable不更新功能參數

來源:

<head> 
    <script src="knockout-3.1.0.js"></script> 
</head> 
<body> 
<div class="sidebar"> 
    <div class="line"> 
     <label>1st Object Name</label> 
     <input type="text" data-bind="value: kotext1" /> 
     <input type="text" data-bind="value: kotext2" /> 
     <input type="text" data-bind="value: kotext3" /> 
    </div> 
</div> 
<script> 
var AppViewModel = function(){ 
    kotext1 = ko.observable("No.1!"); 
    kotext2 = ko.observable("No.2!"); 
    kotext3 = ko.observable("No.3!"); 
} 
ko.applyBindings(AppViewModel); 
testText = function(val) { 
    return "This is " + val; 
} 
textKo = [testText(kotext1()),testText(kotext2()),testText(kotext3())]; 
document.write(textKo); 
</script> 

回答

0

它看起來像你誤解在淘汰賽數據如何結合的作品。除了使用document.writewhich is a bad practice)的,更新的視圖模型:

var viewModel = { 
    kotext1: ko.observable("No.1!"), 
    kotext2: ko.observable("No.2!"), 
    kotext3: ko.observable("No.3!") 
} 
ko.applyBindings(viewModel); 
testText = function (val) { 
    return "This is " + val; 
} 
viewModel.kotext1(testText(viewModel.kotext1())); 
viewModel.kotext2(testText(viewModel.kotext2())); 
viewModel.kotext3(testText(viewModel.kotext3())); 

JSFiddle

+0

謝謝你的回答,但我需要testText功能每個可測量的最終值。你有什麼主意嗎? – user3436210

+0

@ user3436210檢查我的編輯,如果它有效,請不要忘記加註和接受。 – SomeKittens

+0

@ user3436210我認爲這超出了這個問題的範圍。接受我的答案(你甚至可以得到它的代表!)並開啓一個新的問題。 – SomeKittens

相關問題