我试图在更改viewModel后更新UI,但它不起作用,我错过了什么吗? http://jsfiddle.net/rdZjb/1/
viewModel = {
firstName : ko.observable("adrian")
}
$("#button1").click(
function ()
{
viewModel.firstName = "Paul";
alert(viewModel.firstName);
}
)
ko.applyBindings(viewModel);
答案 0 :(得分:4)
您正在以错误的方式处理observables
。每个observable
都是一个函数,因此在设置或设置值时,您应该使用()
:
viewModel.firstName("Paul");
alert(viewModel.firstName());
使用jQuery click事件也是不好的做法。请使用knockout click
绑定:
<input type="button" value ="click" id="button1" data-bind="click: OnClick"/>
viewModel = {
firstName: ko.observable("adrian"),
OnClick: function() {
this.firstName("Paul");
alert(this.firstName());
}
};
答案 1 :(得分:2)
要通过Javascript更改observable(在初始化之后),您需要将其称为函数,例如
viewModel.firstName("Paul");