2015-09-07 3 views
1

Мне нужно получить доступ к конкретным данным приложения как в моих компонентах, так и в маршрутах. Мне также нужно установить конкретные данные приложения из обычного JS.Ember.js - Каков наилучший способ хранения данных конкретных приложений в ember?

В настоящее время я создал объект с глобальными пространствами имен (App.globalSetting), а затем создал переменные как свойства этого объекта.

Я могу установить и получить переменную с помощью App.globalSetting.set() и App.globalSetting.get().

Является ли вышеуказанный метод хорошей практикой или есть лучший способ сделать то же самое.

Также важны данные, подлежащие хранению. Поэтому, пожалуйста, предложите лучший способ выполнить эту задачу.

ответ

1

Возможно, вы захотите взглянуть на Услуги: http://guides.emberjs.com/v2.0.0/services/.

Из руководств:

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

Пример службы:

настройки-service.js

export default Ember.Service.extend({ 
    exampleSetting: true, 
    update(value) { 
    this.set('exampleSetting', value); 
    } 
}); 

Как открыть службу из компонента (или пути):

export default Ember.Component.extend({ 
    settings: Ember.inject.service('settings-service'), 
    actions: { 
    doSomething(val) { 
     this.get('settings').update(val); 
    } 
    } 
}); 
+0

Спасибо за ваш быстрый ответ: -). Не могли бы вы сообщить мне, безопасно ли иметь такие данные, как доступ пользователей к определенным функциям приложения? А также, как я смогу установить свойства сервиса из другой функции javascript, которые не находятся в Ember (Simple javascript). Возможно ли это или нет? – Govind

+0

Я не эксперт по безопасности, но я не думаю, что неплохо хранить учетные данные на стороне клиента. И поскольку Служба является объектом Ember, я не думаю, что это возможно использовать за пределами Ember. –