我有一个场景,其中有“求职者” - 求职者属于“businessunits”,“系统应用”和“课程”&最后,“businessunits”拥有上述所有内容。
进入项目时,您可以从“businessunits”路线(#/ businessunits)开始,在那里它们被列为“#link-to”,它们链接到一个节目视图,点击后将您移到#/ businessunits /: businessunits_id
当您到达此模板时,可以选择通过“systemapplication”,“course”或“show all”查看当前“Businessunit”相关的“Jobaids”
由于考虑到模型关系(以及因为我是ember的新手)而开始的最简单的地方,是“全部显示”选项,这就是我开始的地方。
所以 - 我需要做的是在...中获取:businessunit_id
#/ businessunit /:businessunit_id
可以通过
中的处理看到#businessunit /:businessunit_id / jobaids
...能够应用于那条路线,一个由类似的东西组成的模型 this.store.find('jobaid',{businessunit_id:ID-FROM-PARENT-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(){
this.resource("jobaids", function() {});
});
});
});
export default Router;
...以及通向我需要父ID值的路线的“show all”链接是一个带有{{action“getJobaids”}}的实际锚标记,它与/中的show一起处理app / routes / businessunits.js route
import Ember from 'ember';
export default Ember.Route.extend({
model: function(){
return this.store.find('businessunit');
},
actions: {
getJobaids: function(){
var url = location.href.split('/');
window.unitClicked = url[url.length-1];
this.transitionTo('jobaids');
}
}
});
然后当你到达/app/routes/jobaids.js时,我们从窗口获得了所需的id ...
import Ember from 'ember';
export default Ember.Route.extend({
model: function(){
return this.store.find('jobaid', {businessunit_id: unitClicked});
}
});
这是可怕的,但这足以让我进入下一个路线(我还有一些其他问题,我还没有想到有关查询夹具和/或适配器) - 但这不是一个理想的修复,永远不会保持状态,基本上最终导致链接时缺少(必要的)变量
#/ businessunits /未定义/ jobaids
你可以想象打破一切 - 所以我如何以真正的余烬方式做到这一点,而不依赖于使用裸骨js的hacky?
答案 0 :(得分:0)
我最终将这个项目的开发转向了一个实际的数据库后端进行查询,并让ember的数据库中的关系处理嵌套的对象结构来访问JSON结构中返回的关系。