私は ember が初めてで、Ember 駆動型の Web アプリケーションを構築しようとしています。私はさまざまなtutsを読み、いくつかの例を研究しました。基本的な概念は明確ですが、今はタブパネルを実装しようとしています。私のアプローチは次のとおりです。
意見
Configurator.TabPanelView = Ember.View.extend({
classNames: ['tabPanel'],
templateName: 'tabPanel'
});
テンプレート
<script type="text/x-handlebars" data-template-name='tabPanel'>
<div class='tabHead'>
<ul>
{{#each tabViews}}
<li {{action "{{this.actionName}}" target="{{this.value}}"}} >{{this.title}}</li>
{{/each}}
</ul>
<div class="tab-content">{{outlet}}</div>
</div>
</script>
アプリでの使用
var tab= Configurator.TabPanelView.create({
classNames: ['assortment'],
tabViews: [{ title: 'First', value:'Foo', actionName: 'firstTab' },{title: 'Second', value:'Foo', actionName: 'secondTab' }],
firstTab: Ember.View.extend({
templateName: 'first'
}),
secondTab: Ember.View.extend({
templateName: 'second'
})
});
tab.appendTo("body");
TabTemplate は正しくレンダリングされますが、li-elements をクリックしようとすると、次のエラーがスローされます
キャッチされないエラー: アサーションに失敗しました: ターゲット <(Ember.View のサブクラス):ember217> にはアクション {{this.actionName}} がありません
また、ルーターを使用してタブ移動を実装する必要があるかどうかも知りたいです。しかし、私が見る限り、ルーターはアプリケーション レベルで動作し、単一の UI 構成で使用されることを意図しています。