2015-02-10 48 views
0

我有一個場景,其中有「工作單位」 - 工作單位屬於「businessunits」,「systemapplications」和「courses」& finally「商業單位「具有以上所有內容。ember routing - 將param傳遞給子路由,其中​​param將用作存儲檢索中的過濾參數

當您進入項目時,您將開始使用「businessunits」路線(#/ businessunits),它們被列爲「#鏈接到」,它們鏈接到展示視圖,點擊後將您移到#/ businessunits/:businessunits_id

當你在這個模板到達那裏是一個由「systemapplication」以查看相關的「Jobaids」當前「Businessunit」 S選項,「課程」或只是「全部顯示」

由於最易考慮到模型關係而開始考慮(因爲我是嶄新的),是「全部展示」選項,這就是我開始的地方。

所以 - 我需要做的就是在:businessunit_id在...

#/ businessunit /:businessunit_id

由處理在

#businessunit可以看出/: businessunit_id/jobaids

...要能適用於這條路線,包括像 this.store.find( 'jobaid',{businessunit_id:ID-FROM-家長ROUTE})的模型

到目前爲止,我...

/app/router.js

import Ember from 'ember'; 
 
import config from './config/environment'; 
 

 
var Router = Ember.Router.extend({ 
 
    location: config.locationType 
 
}); 
 

 
Router.map(function() { 
 
    this.resource("businessunits", function() { 
 
    this.route("show", { path: ":businessunit_id" }, function(){ 
 
\t this.resource("jobaids", function() {}); 
 
    }); 
 
    }); 
 
}); 
 

 
export default Router;

...和 ​​「全部顯示」 鏈接通向何處需要路由父ID的值是一個實際的錨標籤,其中有一個{{action「getJobaids」}},該標記通過/app/routes/businessunits.js路由中的顯示進行處理

import Ember from 'ember'; 
 

 
export default Ember.Route.extend({ 
 
\t model: function(){ 
 
\t \t return this.store.find('businessunit'); 
 
\t }, 
 
\t actions: { 
 
\t \t getJobaids: function(){ 
 
\t \t \t var url = location.href.split('/'); 
 
\t \t \t window.unitClicked = url[url.length-1]; 
 

 
\t \t \t this.transitionTo('jobaids'); 
 
\t \t } 
 
\t } 
 
});

然後當你到/app/routes/jobaids.js我們從窗口獲得所需的ID ...

import Ember from 'ember'; 
 

 
export default Ember.Route.extend({ 
 
\t model: function(){ 
 
\t \t return this.store.find('jobaid', {businessunit_id: unitClicked}); 
 
\t } 
 
});

這是很可怕但是這足以讓我進入下一個路線(在我還沒有找到與查詢燈具和/或適配器有關的其他問題的地方) - 然而,這不是一個理想的解決方案,並且永遠不會保持狀態,基本上最終會導致在聯回來時

#/ businessunits /未定義/ jobaids

正如你可以想像休息一切缺失(必要的)變量 - 讓我怎麼做到這一點的真正的餘燼時尚而不依賴於哈克使用裸露的骨頭js?

回答

0

最後我採取這一項目的發展具有實際數據庫後端對查詢,並讓Ember的數據資料庫的關係處理嵌套對象結構來訪問關係,在JSON結構中返回的方向。

相關問題