我有这个索引控制器。
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工作?
答案 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.
},
});