在我的项目中,我有以下三个模型:
- 俱乐部模型:代表一个体育俱乐部。它有一个
clubMeta
和多个customCourts
。 - ClubMeta 模型:与应用程序相关的俱乐部相关信息。
- CustomCourt 模型:属于
club
. 一个俱乐部应该有customCourts 仅当clubMeta.customCourtsEnabled
是true
。
俱乐部
var Club = DS.Model.extend({
... bunch of properties ...
clubmeta: DS.belongsTo('App.Clubmeta'),
customCourts: DS.hasMany('App.CustomCourt')
});
module.exports = Club;
俱乐部元
var Clubmeta = DS.Model.extend({
... bunch of properties ...
customCourtsEnabled: DS.attr('boolean'),
club: DS.belongsTo('App.Club')
});
module.exports = Clubmeta;
海关法庭
var CustomCourt = DS.Model.extend({
name: DS.attr('string'),
glass: DS.attr('boolean'),
indoor: DS.attr('boolean'),
single: DS.attr('boolean'),
club: DS.belongsTo('App.Club')
});
module.exports = CustomCourt;
我需要做的是一个模板,俱乐部(即登录用户)只有在. 正如我在另一个 SO question中被告知的那样,我应该使用 an来处理。clubmeta.customCourtsEnabled
true
ArrayController
CustomCourts
到目前为止一切都很好,问题来了,因为CustomCourtsController
需要了解club和clubmeta。我已经尝试过了,绑定路径有一些变化:
var ClubCourtsController = Ember.ArrayController.extend({
needs: ['currentClub'],
customCourtsEnabledBinding: Ember.Binding.oneWay("App.currentClubController.content.clubmeta.customCourtsEnabled"),
...
});
当前俱乐部控制器
var CurrentClubController = Ember.ObjectController.extend({
init: function() {
this._super();
console.log('Retrieving club ' + App.clubId);
this.set('content', App.Club.find(App.clubId));
}
});
module.exports = CurrentClubController;
但ClubCourtsController.customCourtsEnabled
总是返回未定义。这样做的正确方法是什么?