Я конвертирую приложение Ember в реальном времени на основе глобальных приложений в приложение на основе es6, которое использует ember-cli. В моем приложении мне нужно знать текущий маршрут довольно часто. В версии globals я делал это.ember-cli App.get/App.set throw undefined
Глобалы Pattern
var MyApp = Ember.Application.create({
currentRoute : ''
});
MyApp.Route = Ember.Route.extend({
actions : {
didTransition : function() {
MyApp.set('currentRoute', this);
}
}
});
я мог тогда сделать MyApp.get('currentRoute')
из моей сессии или автономных контроллеров при определении того, как/где переход при возникновении определенных событий.
При использовании ember-cli я импортирую приложение, чтобы иметь возможность ссылаться на него с помощью необходимых контроллеров.
import MyApp from "../app";
Но оказывается, что MyApp.currentRoute
, MyApp.get
и MyApp.set
являются всеми неопределенной.
Часть меня думает, что это ошибка в ember-cli, что экземпляр приложения больше не имеет привязки и сеттеры. Часть меня понимает, что не слишком хорошо хранить вещи в экземпляре приложения.
я мог бы обойти эту проблему путем преобразования всех экземпляров MyApp.get
и MyApp.set
к Ember.get(MyApp, ...)
и Ember.set(MyApp, ...)
соответственно, но я думал, что спросить здесь первый, так как это, кажется, либо проблема с Эмбер-Cli или еще что-то, где есть лучше рекомендуемый способ добиться того, что мне нужно.
Вам не нужно больше myapp.stuff при использовании интерфейса командной строки, а не экспортировать Ember.route.extend ({// ваш код}), а вместо MyApp.set используйте this.set –
Единственное, что вам нужно будет импортировать: ember, 'import Ember from 'ember';' [ping me in chat] (http: //chat.stackoverflow .com/rooms/63494/ember-js), если вам нужна помощь в ее миграции –
У меня также есть эта проблема. Я переношу приложение для набора ember-starter в ember-cli, и у меня есть следующая проблема: я использовал для хранения информации о текущем пользователе в свойстве объекта App. Поэтому я использовал 'App.get ('currentUser')' во всем приложении и 'App.set ('currentUser', x)' при входе/выходе из системы. Теперь это не сработает. Что я могу применить в качестве альтернативы для аналогичного использования? cc @BasementKeyboardHero – Ernesto