2013-10-17 33 views
1

http://emberjs.jsbin.com/aGUguJA/10灰燼鏈接到下一個對象在模型

使用BLOGGR比如我建的職位名單和後視圖,我添加了2個行動後的模板,一個和下一個。

App.PostController = Ember.ObjectController.extend({ 

    actions:{ 
     next: function(){ 
      //Go to next object in a model 
      }, 
     prev: function(){ 
      //Go to previous object in a model 
      }} 
}); 

我不知道如何使上一個和下一個工作。我有強烈的感覺,我需要使用ArrayController,但我仍然不知道從哪裏去。

回答

2

一個簡單的解決辦法是添加兩個字段/變量,在您的文章對象即

{ 
    id: '1', 
    title: "Object 1", 
    author: { name: "Awesome Person 1" }, 
    date: new Date('01-01-2013'), 
    excerpt:"Lorem ..", 
    body:"Lore.." 
    next:2, 
    prev:null 

} 

讓你無論是在你的數據或提供這些信息創建從數據實例化的App.Post對象,然後編寫一個簡單的迭代來填充App.PostsRou​​te的模型部分中的字段。 然後,您可以相應地修改您的模板,並將鏈接的對象或ID傳遞給下一個和上一個按鈕。參觀時

看看工作的例子, http://emberjs.jsbin.com/OxajiVi/1/

編輯 下面的例子演示功能 - 採用Ember類和對象創建鏈接的列表,以JSON數據之前沒有一場和下一場的解決方案,也適用直接發帖,

http://emberjs.jsbin.com/uWAmUba/1

+0

此解決方案是否符合您的需求? – melc

+0

它確實符合標準,但是將prev/next模型複製到自身中感覺..就像矯枉過正。對於我在next/prev 上的最新嘗試,我正在做一個parseInt(this.get('id'),10)+1和-1行動,但這樣做我似乎無法得到model.length和id來禁用它們。 –

+0

你試圖做的事情可以用稱爲雙向鏈表(http://en.wikipedia.org/wiki/Doubly_linked_list)的通用數據結構來實現,這就是我在我的解決方案中描述的內容。所以沒有過度殺傷。儘管可以通過在Ember對象中引入prev和next字段而不是json數據來設計它。在這種情況下,在構建模型時,在路徑中,實際上可以從具有prev和next字段的定義良好的Em類(App.Post)創建Em對象。 – melc

-2

這可能是有益的:

<button {{action "next"}}>Next</button>