【问题标题】:React value changed反应值改变
【发布时间】:2012-11-10 12:53:13
【问题描述】:

假设我有name = ko.observable('John') 绑定到input 作为值。如果name 被更改,我需要显示(之前隐藏)<button>Save</button>。因此,如果我将名称从John 编辑为Jack,则应出现保存按钮,如果编辑回John,则应再次隐藏。您对可以在此处应用哪种绑定/扩展有任何想法吗?
非常感谢!

【问题讨论】:

    标签: knockout.js kolite


    【解决方案1】:

    您需要的称为脏跟踪。

    有一个名为 KoLite 的 ko 插件,其中包含一个脏标志实现(您可以在 this article 中了解它的工作原理):

    用法非常简单,您只需将 obserables 传递给 ko.DirtyFlag(这将返回计算后的 observable)方法:

    var ViewModel = function() {
        var self = this;
        self.name = ko.observable('John');
        self.dirtyFlag = new ko.DirtyFlag(self.name);
    }
    

    在您看来,您可以绑定到 dirtyFlag 上的 isDirty 属性:

    <input type="text" data-bind="value: name, valueUpdate: 'keyup'"/>
    <div data-bind="if: dirtyFlag().isDirty">
        <button>Save</button>
    </div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
    

    Demo fiddle.

    【讨论】:

      猜你喜欢
      • 2018-07-20
      • 2018-01-20
      • 1970-01-01
      • 2022-06-21
      • 2021-12-13
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      • 2020-05-09
      相关资源
      最近更新 更多