我应该如何将网站设置实施到我的Ember应用程序中?

时间:2013-10-21 02:54:13

标签: ember.js

我问过类似的问题here,特别是关于如何为特定控制器实现特定设置。简而言之,我想为整个checkInSettings实施CheckInController,以便我的indexsettingsreports模板和控制器可以访问checkInSettings 1}}。

我确实得到了答案;但是,我认为特定设置可能会受到限制,最好通过制作settings对象或商店,并为签入设置定义settings.checkIn之类的内容来提供更好的服务。

我在网上寻找资源但没有得到很多答案......所以,我应该如何最好地创建应用程序范围的设置,并为我的应用程序的特定区域设置子设置?

注意:我想避免使用Ember Data,因为它还没有生产就绪,这个应用最终将面向消费者。

谢谢!

1 个答案:

答案 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')
})