【问题标题】:How should I go about implementing site settings into my Ember app?我应该如何在我的 Ember 应用程序中实施网站设置?
【发布时间】:2013-10-21 02:54:13
【问题描述】:

我问了一个与此类似的问题here,具体是关于如何为特定控制器实现特定设置。简而言之,我想为整个CheckInController 实现checkInSettings,以便我的indexsettingsreports 模板和控制器可以访问checkInSettings

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

我已经在网上寻找资源,但没有找到很多答案...那么,我应该如何最好地创建应用程序范围的设置,以及我的应用程序特定区域的子设置?强>

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

谢谢!

【问题讨论】:

    标签: ember.js


    【解决方案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')
    })
    

    【讨论】:

    • 我能否从不同的控制器访问anyPropertyanyMethod,例如CheckInController
    • 是的,你可以,但这不是我的意思,我是说你可以从任何路由或控制器访问 someSettingOn 或 someOtherSetting
    猜你喜欢
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 2020-10-14
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多