我想在控制器中计算完成后只调用一次方法。
这是我的controller
:
import Ember from 'ember';
export default Ember.ArrayController.extend({
sortProperties: ['id:desc', 'id:asc', 'value:desc', 'value:asc'],
sortedStats: Ember.computed.sort('model', 'sortProperties'),
actions: {
sortBy: function(sortProperties) {
this.set('sortProperties', [sortProperties]);
}
}
});
template
:
<div><button {{action 'sortBy' 'type:asc'}}>Asc</button><button {{action 'sortBy' 'type:desc'}}>Desc</button></div>
<h1>Chart</h1>
{{chart-bar width=500 height=200 series=sortedStats}}
和component
:
import Ember from 'ember';
export default Ember.Component.extend({
tagName: 'svg'
draw: function() {
// here I draw the chart
},
init: function() {
this._super();
},
onChange: function(){
console.log('onChange');
}.observes('series.[]')
});
onChange
被调用多次,因为模型具有要排序的属性。在我的例子中,它被调用了6次,模型包含了5个属性的数组。我想在控制器中完成onChange
时调用computed.sort
。
有什么建议吗?