Где вы размещаете простую переменную в файловой структуре Ember App Kit, чтобы к ней можно было получить доступ с помощью файла шаблона?
Используя этот пример: jsbin
Куда бы я поместил эту строку кода:
App.name = 'White'
В структуре файла EAK, чтобы он отображался на странице индекса, как в Примере?
2 ответа:
Я не уверен, что это правильный путь. Но в целом EAK пытается избежать загрязнения глобального пространства имен. Таким образом, метод, чтобы глобалы были доступны везде, должен использовать инициализаторы для регистрации зависимости глобалов и вводить их во все контроллеры. Таким же образом ember data вводит хранилище в контроллер.
Внутри
app/initializers
создатьglobal.js
файлvar globals = Ember.Object.extend({ name: 'Edgar Allen Poe' }); export default { name: "Globals", initialize: function(container, application) { container.typeInjection('component', 'store', 'store:main'); application.register('global:variables', globals, {singleton: true}); application.inject('controller', 'globals', 'global:variables'); } };
Это позволит придать их на все контроллеры. Вы можете ссылаться на него в шаблоне типа
{{globals.name}}
Поместить это в инициализаторы здорово, но если ваше приложение не использует много глобальных данных или просто нуждается в флаге, можно использовать его напрямую:
window.App = Ember.Application.create( ready: -> this.register('current:view', window.current_view, {instantiate: false}); this.inject('controller', 'isCurrentView', 'current:view'); rootElement: '#ember-app' )
Теперь вы получаете доступ к {{isCurrentView}} во всех шаблонах