Ember.js Ember控制器扩展未将变量加载到模板中

Ember.js Ember控制器扩展未将变量加载到模板中,ember.js,Ember.js,我已经创建了一个mixin、一个控制器、一个模板 // checkIn/index.js.handlebars <div class="page-header text-center"> <h2> Check in for {{#unless checkInSettings.loaded}} <span class="icon-spinne

我已经创建了一个
mixin
、一个
控制器
、一个
模板

// checkIn/index.js.handlebars
<div class="page-header text-center">
        <h2>
                Check in for
                {{#unless checkInSettings.loaded}}
                        <span class="icon-spinner icon-spin"></span>
                {{else}}
                        <span class="text-info">{{checkInSettings.programName}}</span> - <span class="text-info">{{checkInSettings.programStartDate}}</span>
                {{/unless}}
        </h2>
</div>

我正在尝试将
checkInSettings
加载到整个
CheckInControl智能驭享
及其所有分包商中。我想在我的
checkIn/index
模板中查看
checkInSettings
,但它没有显示

如果我创建控制器,工作原理是:

// controllers/check_in_index_controller.js
App.CheckInIndexController = Em.Controller.extend(App.LoadCheckInSettings);
但是,我想加载设置,以便在
签入
的其他区域中使用,例如设置页面


是否有办法在控制器或路由中加载所有
签入的此混入,以便我可以从
索引或
设置访问
签入设置

创建一个控制器CheckInIndexController。在该控制器上添加这两个属性需要:['check_-ins'],一个checkinsBinding:'controllers.checkIns.content'。然后,您可以在索引模板中使用签入。

我是否需要在单独的控制器中明确定义
需要
绑定
?我不能将其包含在父控制器中?是的,控制器不会从路由器中的层次结构继承任何内容。你需要开脱地使用需求。如果可以在全局范围内完成,这不是最佳实践,可能会让其他人在查看控制器时感到困惑,因为这些控制器的依赖项是从哪里注入的。
// mixins/load_check_in_settings.js
App.LoadCheckInSettings = Em.Mixin.create({
        init: function() {
                this._super();
                if (!this.get('checkInSettings')) {
                        this.set('checkInSettings', App.CheckInSettings.create());
                        this.get('checkInSettings').set('isLoading', true);
                        var self = this;
                        $.getJSON('/check_in/settings').then(function(data) {
                                self.get('checkInSettings').set('isLoading', false);
                                self.get('checkInSettings').set('programName', data.program_name);
                                self.get('checkInSettings').set('programAcademicYear', data.program_academic_year);
                                self.get('checkInSettings').set('programStartDate', data.program_start_date);
                                self.get('checkInSettings').set('loaded', true);
                        });
                }
        }
});
// controllers/check_in_index_controller.js
App.CheckInIndexController = Em.Controller.extend(App.LoadCheckInSettings);