对象 属性 更改时模板未刷新 (Ember 2)
Template is not refreshing on object property change (Ember 2)
我 运行 遇到了 Ember 的问题,当我更改对象(在本例中为 filteredHeroes)的 属性 然后设置计算的 属性 待更新版本,我的模板没有更新。如何在调用操作时强制模板随着对象的更改而更新?
在我的模板中,我有:
{{#each filteredHeroes as |hero index|}}
{{hero._data.AttacksPerSecond}}
{{/each}}
在我的控制器中我有一个动作:
calculateStats() {
var heroes = this.get("filteredHeroes");
var valueOfAttackSpeedPerCP = 5.5;
var valueOfPowerPerCP = 6;
var attackSpeed = this.get('cpAttackSpeed') * valueOfAttackSpeedPerCP;
var power = this.get('cpPower') * valueOfPowerPerCP;
for (var i = 0; i < heroes.length; i++) {
//Set Attacks per second for the specific hero
heroes[i]._data.AttacksPerSecond = (1 / (heroes[i]._data.attributesByLevel[14]['BaseAttackTime'] / ((heroes[i]._data.attributesByLevel[14]['AttackSpeedRating'] + attackSpeed) / 100)));
}
this.set('filteredHeroes', heroes);
}
感谢您的帮助!
如果您正在处理 Ember.Object
那么我们需要使用 get
和 set
方法以便更改将反映在模板中并将触发相应的计算属性和观察者。
对于数组操作,您需要使用可用的方法 Ember.NativeArray
如果您不确定对象是普通对象还是Ember.Object
,那么您可以随时使用Ember.Set
,这样模板、计算属性和观察者都会观察到变化。
我 运行 遇到了 Ember 的问题,当我更改对象(在本例中为 filteredHeroes)的 属性 然后设置计算的 属性 待更新版本,我的模板没有更新。如何在调用操作时强制模板随着对象的更改而更新?
在我的模板中,我有:
{{#each filteredHeroes as |hero index|}}
{{hero._data.AttacksPerSecond}}
{{/each}}
在我的控制器中我有一个动作:
calculateStats() {
var heroes = this.get("filteredHeroes");
var valueOfAttackSpeedPerCP = 5.5;
var valueOfPowerPerCP = 6;
var attackSpeed = this.get('cpAttackSpeed') * valueOfAttackSpeedPerCP;
var power = this.get('cpPower') * valueOfPowerPerCP;
for (var i = 0; i < heroes.length; i++) {
//Set Attacks per second for the specific hero
heroes[i]._data.AttacksPerSecond = (1 / (heroes[i]._data.attributesByLevel[14]['BaseAttackTime'] / ((heroes[i]._data.attributesByLevel[14]['AttackSpeedRating'] + attackSpeed) / 100)));
}
this.set('filteredHeroes', heroes);
}
感谢您的帮助!
如果您正在处理 Ember.Object
那么我们需要使用 get
和 set
方法以便更改将反映在模板中并将触发相应的计算属性和观察者。
对于数组操作,您需要使用可用的方法 Ember.NativeArray
如果您不确定对象是普通对象还是Ember.Object
,那么您可以随时使用Ember.Set
,这样模板、计算属性和观察者都会观察到变化。