3

这应该很简单,但我肯定弄错了。

如何在点击事件上更新 ko.observable 文本?我可以使用“afterkeydown”或“keypress”来做到这一点,但如果点击事件则不行。http://knockoutjs.com/documentation/value-binding.html

<span data-bind="text: Count"></span>
<button data-bind="click: update">Update</button>

 function MyViewModel() {
     var self = this;

     self.Count = ko.observable("0");

     self.update = function() {
         self.Count = ko.observable("1");
     }
 }

http://jsfiddle.net/EBsj5/

4

2 回答 2

4

你应该像函数一样改变它。

self.update = function() {
    self.Count("1");
}

演示:http: //jsfiddle.net/EBsj5/1/

任何基本教程都会向您解释这一点,因此我建议您观看一些。

于 2013-09-08T14:07:15.790 回答
2

当您设置 Knockout observable 的值时,您需要像函数一样使用参数并传入新值。

<span data-bind="text: Count"></span>
<button data-bind="click: update">Update</button>

 function MyViewModel() {
     var self = this;

     self.Count = ko.observable("0");

     self.update = function() {
         self.Count("1");
     }
 }

在这种情况下,这会将 observable 更新为“1”。您不需要再次调用 ko.observable() 因为您已经创建了 observable,您只是尝试使用 setter 函数“设置”值。

于 2013-09-08T14:09:28.663 回答