Emberには、ApplicationView、ApplicationController、および「application」という名前のテンプレートと「main」という名前のアウトレットを持つアプリケーションがあり、これらすべてが自動的に接続されます。例えば。
App.ApplicationView = Ember.View.extend();
と
App.ApplicationController = Ember.Controller.extend();
したがって、アプリケーション テンプレートがデフォルト コントローラをレンダリングするときはいつでも、
App.ApplicationController
テンプレートでアクセスできるプロパティ。しかし、他のビューやコントローラーでは機能しないのはなぜですか。
App.SongView = Em.View.extend()
と App.SongController = Em.Controller.extend() これら2つは接続しません。の任意のプロパティを使用できます
App.SongController
私の歌のテンプレートで。
私は次のように使用できます:
{{view App.SongView}}
そしてテンプレートで:
<script type='text/x-handlebars' data-template-name='song'>
{{name}}
</script>
App.SongController に name プロパティがある場合、ビューに接続されていないため、取得されません。私はこのようにそれを行うことができますが
{{view App.SongView controllerBinding='App.songController'}}
ただし、これには js ファイルに App.songController のインスタンスが必要であり、このアプローチを使用して、コントローラーをテンプレートにハードコーディングしています。
これに最適な方法は何ですか?
更新 私はまた、私の問題のためにjsフィドルをここに添付しています: http://jsfiddle.net/anshulguleria/K6KPJ/