我的视图模型中有一个函数应该将数组中的启用值从 false 更改为 true。
editclick: function (user) {
user.enabled = true;
return true;
}
如果我发出警报以显示更改
user.enabled = true;
alert(ko.toJSON(user));
它表明它确实改变了,但绑定值没有改变。
如果我在更改前发出警报
alert(ko.toJSON(user));
user.enabled = true;
第二次单击该按钮时,警报确实显示值已更改。
这是我的jsFiddle以及我使用的代码。
[JS]
var myViewModel = {
myarray: ko.observableArray([{
myname: 'Bob',
mysurname: 'Smith',
enabled: false
}, {
myname: 'John',
mysurname: 'Smith',
enabled: false
}]),
editclick: function (user) {
user.enabled = true;
alert(ko.toJSON(user));
return true;
}
};
[代码]
<Table border="1" cellpadding="5" cellspacing="0">
<thead>
<tr>
<td>Button</td>
<td>Value</td>
</tr>
</thead>
<tbody data-bind="foreach: myarray">
<tr>
<td>
<input type="button" value="Change" data-bind="click: $root.editclick" />
</td>
<td><span data-bind="text: enabled" />
</td>
</tr>
</tbody>
</Table>
我似乎更改不会更新视图模型。有没有做这项工作。
谢谢