我是淘汰赛的新手,目前我遇到了一个奇怪的问题。我想要的是使用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语句中的连接都会显示出来。
我不知道我的代码的哪一部分不正确,有人可以帮我吗?感谢。
答案 0 :(得分:2)
您必须在viewmodel中添加Value observable。将以下行添加到函数SettingData()
self.Value = ko.observable("");