ember组件增量/减量值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ember组件增量/减量值相关的知识,希望对你有一定的参考价值。
我坚持使用增量并减少组件js中的值。我在我的模板中得到了这个:
<div class="circleBase" {{action 'upHeat' device.status}}> <p> {{heat}} C </p> </div>
现在我只想在点击div时增加热值。我的组件看起来像这样:
init() {
console.log('init');
this._super(...arguments);
this.errors = [];
},
didRender() {
this.setProperties({
heat: 0
});
},
actions: {
upHeat: function(a){
this.set('heat', this.heat +1)
//or
this.setProperties({
heat: this.heat +1
});
console.log(heat);
}
}
这不起作用。每次我点击我的div时,热值会增加但不会保存。我的模板仍显示0作为值。
答案
您已在didRender()
中重置该值。
因此钩子将触发渲染,将值重置为0
。
在console.log(something)
中使用didRender
可以看到只要点击didRender
就会调用div
钩子。
我根据你的要求创造了一个旋风。请看一看。
https://ember-twiddle.com/5ef763cc77aec803f9d62ae85a15dbc1
另一答案
你永远不应该在Ember中读取像this.heat
这样的值,而是使用this.get('heat')
。这样你会:
this.set('heat', this.get('heat') + 1);
还有另一个例子,如果你只想增加一个属性,你可以像这样使用this.incrementProperty
。
this.incrementProperty('heat');
你可以在API docs上阅读。
以上是关于ember组件增量/减量值的主要内容,如果未能解决你的问题,请参考以下文章