我问过类似的问题here,特别是关于如何为特定控制器实现特定设置。简而言之,我想为整个checkInSettings
实施CheckInController
,以便我的index
,settings
和reports
模板和控制器可以访问checkInSettings
1}}。
我确实得到了答案;但是,我认为特定设置可能会受到限制,最好通过制作settings
对象或商店,并为签入设置定义settings.checkIn
之类的内容来提供更好的服务。
我在网上寻找资源但没有得到很多答案......所以,我应该如何最好地创建应用程序范围的设置,并为我的应用程序的特定区域设置子设置?
注意:我想避免使用Ember Data,因为它还没有生产就绪,这个应用最终将面向消费者。
谢谢!
答案 0 :(得分:1)
Ember Data是一个不同的野兽。将它们存储在应用程序控制器上或者,如果您不希望应用程序控制器混乱,请创建设置控制器的单例实例并将其存储在那里。 (同样的事情可以在应用程序控制器上完成,只需使用应用程序而不是设置)。
App.SettingsController = Ember.Controller.extend({
someSettingOn: false,
someOtherSetting: null
});
然后在其他路线/控制器中:
App.AnyRoute = Ember.Route.extend({
anyMethod: function(){
this.controllerFor('settings').toggleProperty('someSettingOn');
}
})
App.AnyController = Ember.Controller.extend({
needs: ['settings'],
anyMethod: function(){
var setting = this.get('controllers.settings.someOtherSetting');
console.log(setting);
},
anyProperty: function(){
if(this.get('controllers.settings.someSettingOn')){
return 'yes';
}
return 'no';
}.property('controllers.settings.someSettingOn')
})