ArrayController 定義で itemController を設定するためのEmberの例に従うと、ブロッキング エラー メッセージが表示されます。
TypeError: Cannot call method 'lookup' of null
JSFiddle: http://jsfiddle.net/jgilick/M4BVV/
// Addresses array controller
App.AddressesController = Ember.ArrayController.extend({
itemController: 'address'
});
// Address object controller
App.AddressController = Ember.ObjectController.extend({
city: function(){
return "San Francisco";
}.property()
});
これを修正するために私が見つけた唯一の方法は...
1) #each ハンドラー ( jsfiddle )で itemController を渡します。
{{#each addresses itemController="address"}}
<li>{{line1}}, {{city}}</li>
{{/each}}
...また...
2) コンテナー プロパティを ArrayController ( jsfiddle )に追加します。
var addresses = App.AddressesController.create({
container: indexController.get('container'),
content: [
App.Address.create({'line1': '700 Hansen Wy'}),
App.Address.create({'line1': '900 Hansen Wy'})
]
});
これらのソリューションはどちらもハックで非常に間違っているように感じます。ArrayController 自体に itemController を設定すると何が間違っていますか?