我想弄清楚什麼時候渲染自定義視圖和通過視圖。我知道使用渲染渲染我們得到完整的上下文(視圖,控制器)。但是觀點呢?視圖應該用於自定義視圖和處理事件。什麼時候通過渲染渲染和何時通過視圖?
下面的例子來形式餘燼數據例如
contacts.hbs
<div class="span3">
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">All contacts</li>
{{#each contact in controller}}
{{view App.ContactInListView contentBinding="contact"}}
{{/each}}
</ul>
</div>
</div>
<div class="span9">
{{outlet}}
</div>
contact_in_list_view.hbs
App.ContactInListView = Em.View.extend({
templateName: 'contact_in_list',
tagName: 'li',
classNameBindings: 'isActive:active',
isActive: function() {
return this.get('content.id') === this.get('controller.activeContactId');
}.property('controller.activeContactId')
});
contact_in_list.hbs
{{#linkTo "contact" contact}}{{contact.fullName}}{{/linkTo}}
不能只是渲染contact_in_list
渲染並傳遞給它一些控制器嗎? 什麼時候應該使用渲染和何時查看?經驗法則是什麼?
附加問題:上面的例子使用內容綁定。這是否意味着控制器和視圖都有我們可以綁定的內容? – wryrych 2013-04-10 17:29:08
我不認爲你可以用'render'來做。看看http://stackoverflow.com/questions/14971056/nested-views-in-ember/14971239#14971239 – 2013-04-10 19:29:33