未定义具有可选动态段的链接到路由

时间:2016-09-08 05:21:17

标签: ember.js

我在索引路线上有一个“可选”动态段。

导航到索引(http://foo.com)会加载默认模板index.hbs。

导航到索引上的动态细分(http://foo.com/123)会加载另一个模板chat.hbs。

router.js

Router.map(function() {
  this.route('index', { path: '/' });
  this.route('index', { path: '/:room_id' });
  ...
}

路由/ index.js

model(params) {
  if (params.room_id) {
    this.set('templateName', 'chat');
    ...
  }
}

在使用link-to helper之前一切正常。 {{#link-to 'index'}}Home{{/link-to}}

这会生成指向http://foo.com/undefined的链接,而不仅仅是http://foo.com

我已经尝试将模型传递给link-to helper,但还没有找到让它工作的方法。

1 个答案:

答案 0 :(得分:2)

Kitler在评论中回答了我的问题。

解决方案是为动态细分创建一条新路线。

<强> router.js

Router.map(function() {
  this.route('index', { path: '/' });
  this.route('chat', { path: '/:room_id' });
  ...
}

<强>路由/ chat.js

model(params) {
    if (params.room_id) {
        return params.room_id;
    }
}