Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.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
Ember.js 如何在Ember cli中观察模型中每个项目的更改_Ember.js_Ember Data_Ember Cli - Fatal编程技术网

Ember.js 如何在Ember cli中观察模型中每个项目的更改

Ember.js 如何在Ember cli中观察模型中每个项目的更改,ember.js,ember-data,ember-cli,Ember.js,Ember Data,Ember Cli,我有一个叫做“matter\u has\u user”的模型,在一个特定的页面上,我会有一些这种类型的项目。其中每一个都是存储对象,都有一个名为bill_alert的值,该值将连接到一个复选框。因此,我需要查看所有这些复选框,当发生更改时,我需要向api发出保存 那你怎么做呢?您能否为特定类型的每个项目在特定属性上设置观察者?如何在每个复选框上设置侦听器以触发特定操作?假设您的模型是这些对象的集合,您可以在每个对象上设置一个观察者,如下所示: myObserver: function(){

我有一个叫做“matter\u has\u user”的模型,在一个特定的页面上,我会有一些这种类型的项目。其中每一个都是存储对象,都有一个名为bill_alert的值,该值将连接到一个复选框。因此,我需要查看所有这些复选框,当发生更改时,我需要向api发出保存


那你怎么做呢?您能否为特定类型的每个项目在特定属性上设置观察者?如何在每个复选框上设置侦听器以触发特定操作?

假设您的模型是这些对象的集合,您可以在每个对象上设置一个观察者,如下所示:

myObserver: function(){
  //do something
}).observes('model.@each.bill_alert')

谢谢您的意见。那正是我想要的。我还有一个问题,在这个观察器触发后,我在函数中,如何访问被单击的存储对象。单击该复选框时,我希望能够访问与之关联的特定存储对象,并在更改bill_alert的值后将其保存到api中。我想到的一个想法是,您可以利用余烬存储对象的
isDirty
属性。e、 g.
myObject.get('isDirty')
将计算为
true
如果该对象自上次保存以来已被更改过,那就很容易了。我想我的困惑在于,当观察者开火时,我所处的范围似乎就是控制器的范围。我本希望我会在点击项目的范围内。myObserver:function(item){//item似乎是controller scope}.ovserves('model.@each.bill_alert')也许您希望列表中的每个项都由一个Ember组件表示。这样,每个组件都可以观察特定于它的模型,而不是从控制器进行观察