[英]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.