Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何知道enyo.模型是否已修改?_Javascript_Enyo - Fatal编程技术网

Javascript 我如何知道enyo.模型是否已修改?

Javascript 我如何知道enyo.模型是否已修改?,javascript,enyo,Javascript,Enyo,我有这个密码 但是,当我单击按钮测试时,不要在我的应用程序中输入函数modechanged,只在创建de model时输入 代码位于此链接中: 这是因为当设置App的model属性changes/时,会执行modelChanged()函数。由于enyo.Model不是一个enyo.Component,因此它不能获得自动属性更改功能。检查如何在此处添加观察者您的代码当前仅触发一次(当您执行app.set(“model”,model);时)。由于更改模型上的属性实际上不会更改app的model属性

我有这个密码 但是,当我单击按钮测试时,不要在我的应用程序中输入函数modechanged,只在创建de model时输入 代码位于此链接中:


这是因为当设置App的model属性changes/时,会执行modelChanged()函数。由于enyo.Model不是一个enyo.Component,因此它不能获得自动属性更改功能。检查如何在此处添加观察者您的代码当前仅触发一次(当您执行
app.set(“model”,model);
时)。由于更改模型上的属性实际上不会更改
app
model
属性,因此不会触发
modelChanged
事件

如果您希望在模型的任何属性发生更改时收到通知,则需要使用不同的方法。您要查看的是事件发射器mixin的文档:

您将需要执行以下操作:

create: function() {
    this.inherited(arguments);
    this.model.on("*", this.modelUpdated, this);
},
modelUpdated: function(sender, e, props) {
    this.log("Model was updated");
}

这将监视任何更改。您可能希望获得更具体的更改,例如使用
“更改”
,而不是
“*”
。如果要监视对模型上特定属性的更改,则需要对模型进行子类化,并在模型中放置更改处理程序。

无论何时使用“set”方法设置模型属性,都应调用modelChanged,但在设置模型属性时不应调用。更改后的方法不需要组件。啊,确实如此但是需要enyo.Object。即使模型不是对象,它们也支持“已更改”的方法。
create: function() {
    this.inherited(arguments);
    this.model.on("*", this.modelUpdated, this);
},
modelUpdated: function(sender, e, props) {
    this.log("Model was updated");
}