0

我正在尝试在更改为 viewModel 后更新 UI,但它不起作用,我错过了什么吗? http://jsfiddle.net/rdZjb/1/

  viewModel = {
        firstName : ko.observable("adrian") 
    }

    $("#button1").click(
        function ()
        {
            viewModel.firstName = "Paul";
            alert(viewModel.firstName);
        }
        )

    ko.applyBindings(viewModel);
4

2 回答 2

4

你正在以observables错误的方式工作。每个observable都是一个函数,因此当您设置或获取值时,您应该使用()

        viewModel.firstName("Paul");
        alert(viewModel.firstName());

使用 jQuery click 事件也是不好的做法。改用淘汰赛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());
    }
};

这是工作小提琴:http: //jsfiddle.net/vyshniakov/rdZjb/2/

于 2012-10-22T16:05:09.417 回答
2

要通过 Javascript 更改 observable(在初始化后),您需要将其作为函数调用,例如

viewModel.firstName("Paul");
于 2012-10-22T16:05:19.290 回答