我有一个集合,我可以成功完成这个('这个'是集合实例):
this.on('change:username', function(model,property,something){
// model is backbone model that changed
// property is the property that changed (username in this case)
// something is some empty mystery object that I can't identify
}
然而,我想要做的是:
this.on('change', function(model,property,something){
// model is backbone model that changed
// ***how can I read the properties that changed here?***
// something is some empty mystery object that I can't identify
}
问题在于,在第二种情况下,我无法获得更改的属性......也许是因为它可能会同时发生多项属性更改。
如何捕获在第二种情况下更改的属性?这有可能吗?
我知道如何做到这一点的唯一方法是
this.on('change', function(model, something){
// something object is unidentifiable
var changed = model.changed; //hash of changed attributes
}
所以我的另一个问题是:那个神秘的对象是什么"是什么"?它只是一个空物......?
答案 0 :(得分:3)
您可以在一般的更改活动中使用几个选项:
Caused by: org.elasticsearch.ElasticsearchIllegalArgumentException: Unable to find on disk script scripts.my_script
at org.elasticsearch.script.ScriptService.compile(ScriptService.java:269)
at org.elasticsearch.script.ScriptService.executable(ScriptService.java:417)
at org.elasticsearch.action.update.UpdateHelper.prepare(UpdateHelper.java:194)
... 6 more
电话以来所有已更改的属性。在没有参数的情况下调用时,它是set()
哈希的防御性克隆副本;你也可以传入一个参数哈希,只得到相对于那组键/值对的模型的不同。changed
)。顺便说一句,set
事件的第三个参数(以及change:attr
的第二个参数)是一个选项对象,如果要指定可以读取的自定义值,这个参数可能很有用。你的事件处理程序。 Backbone还将提供一些标准选项。有关特定选项的详细信息,请参阅Backbone.Model#set的文档,并查看Backbone event list以查看触发这些事件时预期的回调签名。