如何在点击事件上更新ko.observable文本?

时间:2013-09-08 14:04:13

标签: javascript knockout.js

这应该很简单但当然我弄错了。

如何在点击事件上更新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/

2 个答案:

答案 0 :(得分:3)

你应该像功能一样改变它。

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

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

  

任何基础教程都会向您解释,所以我建议您观看一些。

答案 1 :(得分:2)

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

<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更新为&#34; 1&#34;在这种情况下。你不需要再次调用ko.observable(),因为你已经创建了observable,你只是想设置&#39;使用setter函数的值。