2013-04-13 53 views
0

我有一個簡單的應用程序,它使用ember-data從REST風格的Web服務加載,並使用路徑顯示數據以指定模型。在沒有路由器的視圖上指定控制器和模型

App.AreasRoute = Ember.Route.extend({ 
    model: function() { 
     return App.Area.find(); 
    } 
}); 

然後我就可以呈現車把數據模板使用{{#each內容}}

但我想有數據的第二區域在頁面上顯示,以及不同的模式。我開始創建一個視圖,然後使用能夠正確呈現視圖的{{view App.AnotherView}}將視圖渲染爲我的應用程序模板的一部分。

但是,這個視圖沒有路由,因此我無處告訴它從哪裏獲取數據。我該怎麼做呢?

回答

1

加載附加內容的最佳位置在路由的setupController鉤子中。

例如,如果你定義爲

App.AreasRoute = Ember.Route.extend({ 
    model: function() { 
     return App.Area.find(); 
    }, 
    setupController: function(controller) { 
     controller.set('someArea', App.Area.find('area_id')); 
    } 
}); 

然後Area模型ID area_id可以通過{{someArea}}在你的模板訪問您的路線。

+0

這不完全是我之後的事,但幫我解決了這個問題!我已經可以迭代這些區域了,因爲默認情況下,它們將它們設置爲控制器內容屬性。但是我可以使用這個設置一個不同的變量 - 這是可行的。 – jimcode

+0

因此,爲了澄清我做了以下事情,以便可以從我的視圖中訪問插入到應用程序模板(所有路線)中的數據。 App.ApplicationRoute = Ember.Route.extend({ setupController:功能(控制器){ controller.set( 'otherdata',App.AnotherModel.find());} }); – jimcode