Ember,在控制器中计算完成后运行一次组件方法

时间:2015-07-02 08:57:01

标签: sorting ember.js

我想在控制器中计算完成后只调用一次方法。

这是我的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

有什么建议吗?

0 个答案:

没有答案