我是一个轻松的实体经理,检查实体是否有变化。所以我声明了可观察的
isSomeChanged = ko.observable()
然后我像这样绑定价值
isSomeChanged(datacontext.hasChanges());
Html
<button data-bind="click: SaveData, enable: isSomeChanged() "> Save</button>
所以现在如果我在页面中更改了某些内容,则启用或禁用按钮。但是如果我在输入中输入内容,那么只有当我输入时才会启用按钮,而不是在输入后立即启用按钮。
如何输入内容后如何启用保存按钮?
答案 0 :(得分:1)
当微风EntityManager的hasChanges属性发生变化时,请确保更新isSomeChanged observable:
isSomeChanged = ko.observable();
// update the isSomeChanged observable when the hasChangesChanged event fires.
entityManager.hasChangesChanged.subscribe(
function(changeArgs) {
isSomeChanged(changeArgs.hasChanges);
});
确保您输入的值绑定具有相应的valueUpdate参数设置为&#34;输入&#34;。这将导致输入的每个更改立即写入实体属性,而不是在输入失去焦点时。
<input data-bind="value: entity.FirstName, valueUpdate: 'input'" />
此外,你的按钮的启用绑定可以这样表达(不需要parens):
<button data-bind="click: SaveData, enable: isSomeChanged">Save</button>