すべてを正しく設定したとしましょう。モデルApp.User
があり、コントローラーがありApp.UsersIndexUserController
ます。
良い 良い 良い 良い 良い
次のビュー テンプレート ...
<script type="text/x-handlebars" data-template-name="users_index_template">
{{#each user in users}}
{{log user}}
{{#linkTo users.user user}}{{user.name}}{{/linkTo}}
{{/each}}
</script>
...これにより、ブラウザのconsole.logに次のように出力されます...
<App.User:ember258> { created_at="2013-03-05T01:51:15Z", id=76 ... etc ... }
バッドバッドバッドバッドバッド
ただし、itemController
テンプレートでディレクティブを使用する場合は、次のように...
<script type="text/x-handlebars" data-template-name="users_index_template">
{{#each user in users itemController="usersIndexUser"}}
{{log user}}
{{#linkTo users.user user}}{{user.name}}{{/linkTo}}
{{/each}}
</script>
...これにより、ブラウザのconsole.logに次のように出力されます...
<App.UsersIndexUserController:ember253> { target=<Ember.ArrayController:ember245> ... etc ... }
どちらの場合も{{log user}}
のインスタンスを返すことを期待しています。App.User
しかし、上記のように、ディレクティブを使用する場合はインスタンスをApp.UsersIndexUserController
返し、ディレクティブを使用しないitemController
場合はインスタンスを返します。App.User
itemController
App.UsersIndexUserController
上記の両方のケースで、{{log user}}
が返されるようなオブジェクトを明示的に返す必要がありApp.User
ますか?
App.UsersIndexUserController = Ember.ObjectController.extend({
});
私はEmber.js v1.0.0-rc1を使用しています
// Version: v1.0.0-rc.1
// Last commit: 8b061b4 (2013-02-15 12:10:22 -0800)