私のプロジェクトには、次の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を返します。これを行う正しい方法は何ですか?