EmberJS-当相同的值被分配给依赖属性时,更新计算的属性
EmberJS - Update computed properties when same value is assigned to dependent property
在我的ember应用程序中,有一个事件,模型的属性可能会更改,也可能不会更改。我的控制器中还有一个计算属性,它依赖于我的模型的属性和我的应用程序中的另一个变量(不属于模型)。
即使偶数触发时模型的属性没有改变,其他应用程序变量也会改变,这会影响控制器的计算属性,我希望这些改变反映在事件触发上。
我注意到,如果指定了相同的值,ember将不会"更新"属性,而且我似乎找不到强制更新的方法。
现在我有一个奶酪修复,如果模型的属性没有改变,我会将值更改为其他值,然后将其重置为原来的值,以触发控制器的计算属性。这不是很有效或干净。有其他方法可以解决这个问题吗?
编辑:简单地展示一下我正在进行的…
session.other_application_var = [1, 2];
App.MyModel = Ember.Object.extend({
model_prop: 1
});
//an instance of MyModel is assigned to the index route's model
App.IndexController = Ember.ObjectController.extend({
comp_prop: function(){
var sum = this.get('model.model_prop');
session.other_application_var.forEach(function(num){
sum += num;
});
return sum;
}.property('model.model_prop)
});
因此,基本上,如果我更改session.other_application_var,例如添加另一个元素,我希望comp_prop进行更新。
您可以使用特殊的@each
属性来观察数组中的变化。下面的更改意味着model.model_prop
或"App.otherStuff.@each"更改时comp_prop
将更新。
App = Ember.Application.create({
otherStuff: [2,3,4]
});
App.IndexController = Ember.ObjectController.extend({
comp_prop: function(){
var sum = this.get('model.model_prop');
var otherStuff = App.get('otherStuff');
otherStuff.forEach(function(num){
sum += num;
});
return sum;
}.property('model.model_prop', 'App.otherStuff.@each')
}
完整的工作示例JSBin
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 在Aurelia computeds中,当设置依赖关系时,如何声明对对象属性的依赖关系
- 具有多个依赖项的Ember属性不会按预期更新
- Ember-自定义计算属性,用于检查是否存在所有依赖字段
- 使计算属性依赖于emberjs中另一个对象的所有属性
- 在调用依赖于它的方法时设置 javascript 对象属性
- 依赖于其他属性的 JavaScript 属性值
- 与号中的相互依赖派生属性
- 对象属性的属性依赖项
- 可以't访问require.js中的依赖对象字段-无法读取未定义的属性
- Vue.js中的相互依赖属性
- Rivets.js属性依赖于几个字段
- EmberJS-当相同的值被分配给依赖属性时,更新计算的属性
- 如何同步声明JS对象,然后用依赖于并发操作的数据编辑对象的属性
- 加载依赖于页面的面向对象JS属性的最好方法是什么?
- 依赖于Backbone.js模型的属性
- 编写对象字面量意味着属性不能相互依赖
- 如何测试具有关系依赖关系的Ember模型的计算属性
- 如何创建依赖于普通变量、函数或逻辑的ember属性
- wpf/silverlight中的依赖项属性与javascript对象属性