私のプロジェクトには、次の3つのモデルがあります。
- クラブモデル:スポーツクラブを表します。それは1つと
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;
Clubmeta
var Clubmeta = DS.Model.extend({
... bunch of properties ...
customCourtsEnabled: DS.attr('boolean'),
club: DS.belongsTo('App.Club')
});
module.exports = Clubmeta;
CustomCourt
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;
私がする必要があるのは、クラブ(ログインしているユーザー)がである場合にのみcustomCourtsclubmeta.customCourtsEnabledを追加できるテンプレートですtrue。別のSOの質問で言われたように、私はを使用しArrayControllerて処理する必要がありCustomCourtsます。
この時点まではすべて問題ありません。クラブとclubmetaCustomCourtsControllerについて知る必要があるため、問題が発生します。バインディングパスにいくつかのバリエーションを付けて、これを試しました。
var ClubCourtsController = Ember.ArrayController.extend({
needs: ['currentClub'],
customCourtsEnabledBinding: Ember.Binding.oneWay("App.currentClubController.content.clubmeta.customCourtsEnabled"),
...
});
CurrentClubController
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常にundefinedを返します。これを行う正しい方法は何ですか?