knockout if-else bind无法正常工作

时间:2016-04-13 16:46:58

标签: javascript knockout.js

我是淘汰赛的新手,目前我遇到了一个奇怪的问题。我想要的是使用ko if-else bind,请参阅以下代码:

<table>
 <thead>
   something......
 </thead>
<tbody>
<tr>
 Problem comes here...
 <!-- ko ifnot: editing -->
   <td><span data-bind="text: Value" /></td>
   <td><button data-bind="click: Edit">Edit</button></td>
 <!-- /ko -->
 <!-- ko if: editing -->
   <td><input data-bind="value: Value"></td>
   <td><button data-bind="click: Save">Save</button></td>
 <!-- /ko -->
</tr>
</tbody>
</table>

在ViewModel中:

 function SettingData(){
  var self = this;
  self.editing = ko.observable(false); 

self.Edit = function () {
    self.editing(true);
};

self.Save = function () {
    self.editing(false);
}
}

当启动页面时,if和ifnot语句中的内容全部出现(应该是错误的)。单击“编辑”时,只有if语句中的内容显示而ifnot语句中的内容消失,这很好,但是当单击“保存”时,if和ifnot语句中的连接都会显示出来。

我不知道我的代码的哪一部分不正确,有人可以帮我吗?感谢。

1 个答案:

答案 0 :(得分:2)

您必须在viewmodel中添加Value observable。将以下行添加到函数SettingData()

self.Value = ko.observable("");