Ember 在 DS 模型记录上计算的 属性 在更改记录时未触发
Ember computed property on a DS model record is not firing when the record is changed
例如:
我有model/test.js
export default Model.extend({
name: attr('string'),
email: attr('string'),
address: attr('string'),
age: attr(),
phone: attr()
});
在component.js
list: computed('model.{}', function() { });
正在获取路由中的数据并将其传递给模板。在子组件中,我试图访问它。最初传递的数据类似于
{
'data': {
name: 'test'
}
}
稍后发送数据为
{
'data': {
name: 'test',
email: 'test@gmail.com',
address: 'XYZ',
age: 10,
phone: 423423
}
}
但是在计算中 属性 它没有监听第二个更新的数据。我想动态收听模型中的每个 属性。如果我喜欢
,它将起作用
list: computed('model.{name,email,address,age,phone}', function() { });
但我想要一些其他解决方案。动态需要监听模型对象中的每个 属性。
您可以尝试在计算 属性.
中使用 @each
list: computed('model.@each', function(){});
它将适用于模型中的所有属性 class。但它只能工作一层深度。
如果您正在处理单个对象,那么您所拥有的是正确且唯一可能的方法。
list: computed('model.{name,email,address,age,phone}', function() { });
假设您的模型是对象数组,那么您可以执行以下操作,
list: computed('model.@each.{name,email,address,age,phone}', function() { });
例如:
我有model/test.js
export default Model.extend({
name: attr('string'),
email: attr('string'),
address: attr('string'),
age: attr(),
phone: attr()
});
在component.js
list: computed('model.{}', function() { });
正在获取路由中的数据并将其传递给模板。在子组件中,我试图访问它。最初传递的数据类似于
{
'data': {
name: 'test'
}
}
稍后发送数据为
{
'data': {
name: 'test',
email: 'test@gmail.com',
address: 'XYZ',
age: 10,
phone: 423423
}
}
但是在计算中 属性 它没有监听第二个更新的数据。我想动态收听模型中的每个 属性。如果我喜欢
,它将起作用list: computed('model.{name,email,address,age,phone}', function() { });
但我想要一些其他解决方案。动态需要监听模型对象中的每个 属性。
您可以尝试在计算 属性.
中使用 @eachlist: computed('model.@each', function(){});
它将适用于模型中的所有属性 class。但它只能工作一层深度。
如果您正在处理单个对象,那么您所拥有的是正确且唯一可能的方法。
list: computed('model.{name,email,address,age,phone}', function() { });
假设您的模型是对象数组,那么您可以执行以下操作,
list: computed('model.@each.{name,email,address,age,phone}', function() { });