例如:
我有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() { });
但我想要一些其他解决方案。动态地需要监听模型对象中的每个属性。
答案 0 :(得分:0)
您可以尝试在计算属性中使用 @each 。
list:computed(' model。@ each',function(){});
它适用于模型类中的所有属性。但它的作用只有一个层次。
答案 1 :(得分:0)
如果您正在处理单个对象,那么您拥有的是正确且唯一可行的方式。
list: computed('model.{name,email,address,age,phone}', function() { });
假设您的模型是对象数组,那么您可以执行以下操作,
list: computed('model.@each.{name,email,address,age,phone}', function() { });