【发布时间】:2016-02-22 16:30:30
【问题描述】:
我有一个从 Rails API 获取数据的 Ember 应用设置。我现在有路线设置,但不是我想要的。当前的路由结构(对于 ember 应用程序)是这样的:
//router.js
Router.map(function() {
this.route('surveys');
this.route('survey', { path: 'surveys/:survey_id' }, function() {
this.route('sections', { path: '/sections' });
});
this.route('section', {path: 'surveys/:survey_id/sections/:section_id'}, function() {
this.route('survey_items', { path: 'survey-items' });
});
});
在模型中我有调查,每个调查都有很多部分,每个部分都有很多调查项目。它的设置方式现在有点工作,但我的症结是,如果我去section 路线,我想要一个“下一步”按钮,当你点击它时,它会带你进入该调查的下一部分。现在我不能正确地做到这一点,因为我的section 路由仅通过传入的 id 参数查找部分来加载模型。如果所有调查的所有部分都已加载到商店中,并且我现在增加该部分,则无论它与哪个调查 ID 关联,它都会进入下一个部分。我不知道如何更好地设置我的路线来完成这项工作。
rails api 路由现在看起来像这样:
routes.rb
namespace :api do
namespace :v1 do
resources :surveys, shallow:true do
resources :sections, shallow: true do
resources :survey_items, path: '/survey-items'
end
end
end
end
如您所见,在 Rails 路由中,我将 shallow: true 放在 surveys 和 sections 资源上。出于某种原因,当我让它们嵌套而没有浅层路由时,如果没有嵌套我的 ember 路由,我无法让 ember 加载正确的路由,它嵌套了我不想要的 UI。任何人都可以给我任何提示,告诉我如何设置我的路线而不需要在铁轨中使用浅层路线(如果可能的话),以及我应该如何获取每个部分的模型数据,以便我可以进入相关调查的下一部分?
section 当前的路由模型是这样获取的:
model(params) {
return this.store.findRecord('section', params.section_id, { reload: true });
}
【问题讨论】:
标签: ember.js ember-data ruby-on-rails-4.2