在Knockout中发生数据绑定时,我需要一个全局事件

时间:2013-06-09 18:51:54

标签: events knockout.js

我是knockoutjs的新手。我搜索了一些例子,到目前为止没有运气。我有一个页面是一个数据收集表单,其中的值使用knockout绑定。我要做的是向用户提供一个标志,让他知道数据被修改并且需要保存。在应用程序中,用户可以下拉表单并显示来自服务器的数据并仅将其用作信息。在其他情况下,他可以修改该数据。我希望在任何绑定发生变化时向用户显示一个标记,其中包含“数据已被修改”的标签,如果他试图离开页面我想要警告他更改将丢失。是否有一些我可以订阅的事件告诉我模型中的任何值何时被更改?

谢谢, 特里

1 个答案:

答案 0 :(得分:0)

看看Ryan Niemeyer's Dirty Flag。它可能就是你要找的东西。他的方法的一个例子可以在这个jsFiddle中看到。

this.dirtyItems = ko.computed(function() {
    return ko.utils.arrayFilter(this.items(), function(item) {
        return item.dirtyFlag.isDirty();
    });
}, this);

可在此SO主题中找到更多信息:Knockout isDirty example, using dynamic viewmodule from mapping plugin