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组件增量/减量值的主要内容,如果未能解决你的问题,请参考以下文章

Mysql/ Grafana 计算/显示最后一小时/天/周/月的重量增量/减量

Java 增量/减量运算符 - 它们的行为方式,功能是啥?

Laravel Livewire 增量减量不起作用

每个产品的 Ionic 2 增量减量

Java中的前后增量和减量[重复]

“增量/减量”SVM 算法 - 可以在附加数据上进行训练