2
可以说我有name = ko.observable('John')
作为值绑定到input
。如果name
被更改,我需要显示(隐藏之前)<button>Save</button>
。所以如果我编辑名称从John
到Jack
然后保存按钮应该出现,如果编辑回John
它应该再次隐藏。你有什么想法可以在这里适用什么样的绑定/扩展?
非常感谢!已更改反应值
可以说我有name = ko.observable('John')
作为值绑定到input
。如果name
被更改,我需要显示(隐藏之前)<button>Save</button>
。所以如果我编辑名称从John
到Jack
然后保存按钮应该出现,如果编辑回John
它应该再次隐藏。你有什么想法可以在这里适用什么样的绑定/扩展?
非常感谢!已更改反应值
你需要什么叫做脏跟踪。
有劫插件叫做KoLite其中包含一个肮脏的标志实现(你可以看到它是如何工作的this article):
的使用非常简单,你只需要你的obserables传递到ko.DirtyFlag
(此将返回计算观察到的)方法:
var ViewModel = function() {
var self = this;
self.name = ko.observable('John');
self.dirtyFlag = new ko.DirtyFlag(self.name);
}
而且在你看来,你可以绑定到isDirty
财产上的dirtyFlag
:
<input type="text" data-bind="value: name, valueUpdate: 'keyup'"/>
<div data-bind="if: dirtyFlag().isDirty">
<button>Save</button>
</div>