2014-03-26 33 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

相关问题