Ember, запустить компонентный метод один раз, когда вычисление в контроллере закончено

76
6

Я бы хотел вызвать метод только один раз, когда вычисление в контроллере закончено.

Вот мой 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 onChange в контроллере.

Какие-либо предложения?

спросил(а) 2015-07-02T11:57:00+03:00 5 лет назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема