javascript - ember 组件递增/递减值

标签 javascript ember.js ember-cli

我坚持在组件 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() 中的值。

因此,钩子(Hook)将触发渲染,将值重置为 0

didRender 中使用 console.log(something) 可以看到每当 div 时调用 didRender Hook > 被点击。

我已经根据您的要求创建了一个小游戏。请看一下。

https://ember-twiddle.com/5ef763cc77aec803f9d62ae85a15dbc1

关于javascript - ember 组件递增/递减值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47953249/

相关文章:

ember.js - 如何将 ember-cli 应用程序部署到 nginx 上

javascript - 更改路线时将 Ember Controller 属性设置为 false

javascript - 从方法中读取 AngularJS 中的 $Cookies

javascript - 签名脚本进行跨域查询

javascript - 如何: React serialise multidimensional array and unserialise it in PHP

javascript - 工具提示不起作用

javascript - 渲染 ember 模板后执行操作(javascript 函数)

ember.js - 绑定(bind)到 StateManager 的 Ember 导出在更改状态两次后不会呈现

ember.js - EmberJs - 如何在 View 加载后更新 Handlebars 模板内容?

javascript - Ember 第一个应用程序无法识别 xml2json 中的 xmlcode