2015-11-03 5 views
1

У меня есть приложение Ember, которое отображает список заимствованных статей в таблице. Одна ячейка таблицы имеет вспомогательный помощник, который либо «заимствован», либо «возвращен» как значение.Изменения состояния после завершения Ember.comput

У меня также есть флажок, который запускает отображение возвращенных элементов через запрос Параметры.

Когда я установил свой флажок, чтобы не отображать возвращенные элементы и установить один элемент из «заимствованных» в «возвращенный», статья останется видимой.

Так что мне нужно будет перезагрузить 'filtersResults' с включенным изменением состояния.

Я читал о Ember.observer, но я не уверен, что это правильно для использования.

import Ember from 'ember'; 

export default Ember.Controller.extend({ 
    queryParams: ['showReturned'], 
    showReturned: false, 
    possibleStates: ['borrowed', 'returned'], 
    filteredResults: Ember.computed('showReturned', 'model', function() { 
    const articles = this.get('model'); 
    if (this.get('showReturned')) { 
     return articles; 
    } else { 
     return articles.filterBy('state', 'borrowed'); 
    } 
    }) 
}); 

ответ

0

Вы должны смотреть атрибут каждого modelstate с [email protected].

filteredResults: Ember.computed('showReturned', '[email protected]', function() { 
    const articles = this.get('model'); 
    if (this.get('showReturned')) { 
     return articles; 
    } else { 
     return articles.filterBy('state', 'borrowed'); 
    } 
    }) 

В том же ключе, если вы хотите, чтобы просто посмотреть, были ли созданы или уничтожены какие-либо статьи, вы могли наблюдать массив - 'model.[]'.

Вы хотите Ember.computed (doc), потому что вы потребляете результат как свойство. Вы бы использовали Ember.observer (doc), если было какое-то действие, которое вы хотели выполнять каждый раз при изменении одного из состояний (например, автоматическое сохранение модели).

+0

Это работает отлично! Также спасибо за объяснение причин. –

Смежные вопросы