Ember嵌套路由与pods

时间:2016-09-16 06:53:05

标签: ember.js

我有2条路线列车,用豆荚创建团队。

trains
  --route.js
  --template.hbs

teams
  --route.js
  --template.hbs

路由器

Router.map(function() {
  this.route('trains', function(){
    this.route('teams', {path: '/:train_name'});
  });
});

当我导航到/ train / some-train-name / teams时。它没有调用团队路线。它正在寻找模板'火车/团队'。是期待我的团队文件夹在火车文件夹内。如何嵌套这两条不同的路线

2 个答案:

答案 0 :(得分:1)

trains
  --route.js // common for all subroutes
  --template.hbs // common for all subtemplates
  index
    --route.js
    --template.hbs
  teams
    --route.js
    --template.hbs

尝试下一个结构

如果您仍然需要保留您显示的结构 - 您需要更新您的解析器 app/resolver.js

export default Ember.Resolver.extend({
    resolve(fullName) {
       // put custom logic here
    }
});

我不能给你一些代码,因为我需要调试才能使它工作 阅读更多http://emberjs.com/api/classes/Ember.DefaultResolver.html

P.S。

你尝试过吗?

Router.map(function() {
  this.route('trains');
  this.route('teams', {path: 'trains/:train_name/teams'});
});

答案 1 :(得分:1)

您必须reset the namespace,因此这两条路线实际上都是顶级路线,而不是teams命名空间trains。我推荐这个,因为它使结构混乱:

Router.map(function() {
  this.route('trains', function(){
    this.route('teams', { path: '/:train_name', resetNamespace: true });
  });
});