私は、begsTo / hasMany 関係を持つユーザー モデルとワークスペース モデルを持っています。
App.User = DS.Model.extend({
name: DS.attr('string'),
workspace: DS.belongsTo('App.Workspace')
});
App.Workspace = DS.Model.extend({
name: DS.attr('string'),
users: DS.hasMany('App.User')
});
コントローラーのモデル プロパティが有効なユーザーに設定されたコントローラーとビューのセットアップがあります。
App.ApplicationRoute = Ember.Route.extend({
setupController: function() {
this.controllerFor('test').set('model', App.User.find(1));
}
});
次のコードと出力は、コードの実行時に belongsTo アソシエーションがロードされていないことを示しています。ビュー クラスから (ユーザーを介して) ワークスペースにアクセスする適切な方法は何ですか?
App.TestView = Ember.View.extend({
didInsertElement: function() {
var self = this;
console.log('first try: ');
console.log(this.get('controller.model.workspace'));
setTimeout(function() {
console.log('second try: ');
console.log(self.get('controller.model.workspace'));
}, 1000);
}
});
出力;
// first try:
// null
// second try:
// Class { ... }
{{model.workspace}} を介してテンプレートのワークスペースにアクセスできます — ビュー クラスで同じことを行うにはどうすればよいですか?