0

私は ember に基づいたプロジェクトに取り組んでいますが、デザインがよくわかりません。他のすべてのコントローラーが拡張しているアプリケーションコントローラーがあります。

ベースコントローラー

App.ApplicationController = Ember.Controller.extend({
    needs:['userNav'],
    dateNavSelected : '',
    currentSleeperImg:AppStateManager.get('currentSleeperImg'),
    currentSleeperName:AppStateManager.get('currentSleeperName'),        
    didSleeperChange:false,
    logout: function(){
        AppStateManager.transitionTo('loggedOutState');
        this.transitionToRoute('signin');
    },
    selectSleeper: function(sleeper){ //Gets the sleeper change from the menu
        var currSleeper = AppStateManager.get('currentSleeperObj');
        if(!currSleeper || (currSleeper && sleeper.get('id') != currSleeper.get('id'))){
            AppStateManager.set('currentSleeperImg', sleeper.get('sleeper_avatar'));
            AppStateManager.set('currentSleeperName', sleeper.get('sleeper_name'));
            AppStateManager.set('currentSleeperObj', sleeper );
            this.set('currentSleeperImg' , sleeper.get('sleeper_avatar'));
            this.set('currentSleeperName' , sleeper.get('sleeper_name'));
            this.set('didSleeperChange', true);
        }else{
            this.set('didSleeperChange', false);
        }
    }
});

子コントローラー

App.LastNightSummaryController = App.ApplicationController.extend({        
    pageTitle: moment().subtract('days', 1).format("MMM D"),
    active:'last-night-summary',        
    selectSleeper: function(sleeper){ //Gets the sleeper change from the menu
        this._super(sleeper);   
        if(this.get('didSleeperChange')){
            this.set('content', App.SleepData.find({id:sleeper.get('id'), sleeper:sleeper}));
        }    
    }    
});

良いパターンですか?

4

1 に答える 1