Я обезьяна исправлена мой маршрутизатор, чтобы сохранить текущие компоненты маршрута в переменном сеансе:Ember 2,5 наблюдать сессии свойства изменения
var Router = Ember.Router.extend({
customSession: Ember.inject.service('session-custom'),
location: config.locationType,
didTransition: function() {
this._super(...arguments);
this.get('customSession').set('currentEntity', this.get('currentRouteName').split('.')[0]);
this.get('customSession').set('currentDetailView', this.get('currentRouteName').split('.')[1]);
}
});
Я знаю, что это не чистейшее решений, но написание сессии на консоль доказывает, что по крайней мере эти параметры установлены.
В мой контроллер, я хотел бы, чтобы прослушать изменения этих параметров, но как-то это не работает:
import Ember from 'ember';
import ApplicationController from './application';
export default ApplicationController.extend({
customSession: Ember.inject.service('session-custom'),
currentRouteNameChanged: Ember.observer('customSession.currentEntity', function() {
console.log("route changed");
})
});
т.е. «маршрут изменен» никогда не печатается на консоль.
Это кажется довольно простым решением, но я не смог найти решение на SO.
Спасибо!