Ember操作或this.get仅适用

时间:2016-09-13 03:58:40

标签: javascript ember.js

我有这个索引控制器。

import Ember from 'ember';

export default Ember.Controller.extend({
    actions: {
        reload() {
            console.log('click on button reload');
            this.get('doReload');
        }
    },
    doReload: Ember.computed(function() {
        console.log('do reload method');
        // ajax action will be here.
    }),
});

这是模板中的按钮。

<button type="button" class="btn btn-secondary btn-sm" {{action 'reload'}}>Reload</button>

当我第一次点击该按钮时,console.log()正确包含2行消息。

  

点击按钮重新加载
  做重装方法

但是当我第二次或更多次点击该按钮时,console.log()只包含一行。它不会再次调用doReload

  

点击按钮重新加载

每次点击操作按钮时如何使this.get工作?

1 个答案:

答案 0 :(得分:2)

计算属性将被缓存,直到依赖属性发生更改。如果你只想执行一个不在动作内部的函数,只需创建并调用一个函数。

export default Ember.Controller.extend({
    actions: {
        reload() {
            console.log('click on button reload');
            this.doReload();
        }
    },
    doReload: function() {
        console.log('do reload method');
        // ajax action will be here.
    },
});