繁体   English   中英

我怎么知道哪个对象已在model。@ each EmberJS上更新

[英]How would i know which object has been updated on model.@each EmberJS

我试图更改对象列表中的对象属性,并希望在更改后立即获得该对象。

我的方法是通过model.@each.property_1观察该列表上的属性更改model.@each.property_1

export default Ember.Controller.extend({

  onModelProperty1Change: function(){
    // How can i get that particular object after one of it 
    // property was changed inside here?
    //
    // do some database action to the object...

  }.observes('model.@each.property'),

});

我想知道这是否是正确的方法。 还是应该在元素上进行更改事件? 无论哪种方式,我都需要知道有可能使该对象进入observes助手。

如果不添加其他状态,当观察者触发并随后更新时,可以添加“ diff”,就无法进行尝试。 我不推荐这种方法

而是,更改对象的函数然后应调用更新代码。 这可以通过动作+服务轻松完成。 假设触发更新的任何因素都会发送要更新的模型索引和新值(在此仅作演示,因为您未包括对象的更改方式)

actions: {
  updateModelAtIndex(index, prop){
    let modelToUpdate = this.get('model')[index];
    modelToUpdate.set('property', prop);

    let service = this.get('someInjectedService');
    service.save(modelToUpdate);
  }
}

现在,在具有双向绑定的旧余烬版本中,拦截这些更改并不是那么容易(当它们是绑定表单字段更改的结果时),您必须像当前代码一样依赖观察者。 转换为单向绑定方法,在这种方法中,表单元素发出动作,而您仅在动作处理程序中更新模型即可解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM