2013-03-12 57 views
1

所以我的模型設置如下:如何呈現的hasMany關聯每一個都有自己的控制器

App.Post = DS.Model.extend 
    comments: DS.hasMany 'App.Comment' 

App.Comment = DS.Model.extend 
    post: DS.belongsTo 'App.Post' 

我試圖創建具有的所有帖子和評論都顯示的圖,但我需要裝飾評論對象。

這是我想要做什麼,但無濟於事:在App.CommentController定義

<ul> 
    {{#each post in controller}} 
    <li>{{post.title}}</li> 
    <ol> 
     {{#each comment in post.comments itemController="comment"}} 
     <li>{{comment.body}}</li> 
     {{/each}} 
    </ol> 
    {{/each}} 
</ul> 

屬性根本不被模板中找到。

我懷疑Ember.OrderedSet沒有實現itemController參數 - 有沒有解決這個問題的方法?

回答

2

您需要使用新的過期控制標籤。這將加載指定類型的視圖和控制器:

<ul> 
    {{#each post in controller}} 
    <li>{{post.title}}</li> 
    <ol> 
     {{#each comment in post.comments}} 
     {{ control "comment" comment }} 
     {{/each}} 
    </ol> 
    {{/each}} 
</ul> 

您需要先啓用此過期功能。餘燼被加載之前將這個:

<script type='application/javascript'> 
    ENV = { 
     EXPERIMENTAL_CONTROL_HELPER: true 
    }; 
</script> 

此外,您將需要指定徵求意見控制器不應該是一個單身,否則只會被實例化所有評論意見一個控制器:

// this is needed to use control handlebars template properly per 
// https://github.com/emberjs/ember.js/issues/1990 
App.register('controller:comment', App.CommentController, {singleton: false }); 
+0

布達大回答,謝謝!值得注意的是,使用'control'時'itemController'不是必須的。 – tigrish 2013-03-12 21:35:37

相關問題