Ember.js の学習の一環として、 Adamの例に基づいて、Ember でテーブル ビューを作成しようとしています。
私が直面している問題は、ビュー用に別のコントローラーを作成し、行用に itemController を含めると、ember で次のエラーが発生することです: Uncaught TypeError: Cannot call method 'lookup' of null ember-1.0.0-rc.6. js:13933
これをデバッグすると、次のコードにあることがわかります。
controllerAt: function(idx, object, controllerClass) {
var container = get(this, 'container'),
subControllers = get(this, '_subControllers'),
subController = subControllers[idx];
if (!subController) {
subController = container.lookup("controller:" + controllerClass, { singleton: false });
コンテナは として取得されnull
ます。
一方、ApplicationController を介して実行される場合、そのような問題はありません。
JS Fiddleビューに ApplicationController を使用し、itemController に別のコントローラーを使用する - 正常に動作する
この項目では、コントローラーが指定されて{{#each controller itemController="tableRow"}}
おり、コントローラーはApp.TableRowController
これは、別の TableViewController を使用した非常によく似たJS Bin、JS Fiddle{{#each controller itemController='tableRow'}
です。項目コントローラーは、同様に として指定されます。
Table View の別の Controller は :{{view App.TableView controllerBinding="tableViewController"}}
を使用してバインドされ、この tableViewController は ApplicationController のプロパティとして次のように指定されます。
App.ApplicationController = Ember.ArrayController.extend({
tableViewController: function() {
var tc = Ember.get('App.TableViewController').create();
tc.set('content',Ember.ArrayProxy.create({
content: Ember.A(tableData)})
);
return tc;
}.property()
});
しかし、何らかの理由で、ここでは itemController が機能しません。
これは、ビューに別のコントローラーを使用するJSフィドルですが、itemControllerはありません-これは正常に機能します
コントローラーに欠けているものはありますか?
助けてください。ありがとう。