2014-06-06 53 views
2

試圖做到與分頁不同的模式過渡到相同的路線:如何用新模型轉換到相同的路線?

App.ClientsIndexController=Ember.Controller.extend({ 
actions:{ 
    newPage:function(){ 
     var self=this; 
     this.store.find('client',{"limit":5,"offset":1}).then(function(m){ 
      console.log(m); 
      self.transitionToRoute('clients.index',m); 
     },function(err){ 
      console.log(err); 
     }); 
    } 
} 
}); 

最終目標: 能夠與Emberjs進行分頁,而不增加新的途徑(如頁/:PAGE_NUM)或獲取的所有數據和在Ember中對它進行分頁。

回答

1

你並不需要轉換,你只需要改變模型。因此,而不是這樣的:

self.transitionToRoute('clients.index', m); 

只是這樣做:

self.set('model', m); 

而作爲一個側面說明,你的控制電流Ember.Controller繼承。你應該避免這樣做,因爲你看到的大多數指南都不會這樣做。如果您的模型是單個對象,則從Ember.ObjectController延伸;如果模型是陣列,則從Ember.ArrayController延伸。

+0

謝謝,我真的被困在這一個。如果控制器/路線正在觀察模型的變化,這是有道理的。結果將很快發佈。我能看到的唯一缺點是如果我需要運行任何鉤子(例如模型之後),但是在這種情況下它應該沒問題。 –

+0

乾杯,謝謝GJK這樣做! –

+0

但是,如果模型是URL的一部分,則URL將不會更新。也不會調用afterModel或setupController鉤子。 –

相關問題