Ember.js 2.嵌套路由但非嵌套模板

Ember.js 2. Nested routes but non-nested templates

首先感谢大家对本论坛的付出

我遇到这种情况:

我需要这样的 url:

我的网站。com/author/1/1/购物车

但我不想要嵌套模板(每个页面都不同,我不希望在多个页面中使用相同的信息)。

有什么方法可以做到吗URL?

我的实际router.js是这样的:

Router.map(function() {
  this.route('index', {path: '/'});
  this.route('login');
  this.route('authors', {path: '/authors'});
  this.route('author', {path: '/author/:author_id'});
  this.route('book', {path: '/book/:book_id'});
  this.route('cart', {path: '/cart/:cart_id'});
});

你有两个选择:

多个动态细分

只是不要嵌套您的路线,而是要有多个动态段。那是可能的:

this.route('cart', {path: '/cart/:author_id/:cart_id'});

这将为您提供如下路线:

/cart/1/A 这将呈现作者 1 和购物车 A

cart 路线

嵌套但不要将任何东西放入父路由

所以你可以拥有这个路由器:

this.route('author', {path: '/author/:author_id'}, function() {
  this.route('cart', {path: '/cart/:cart_id'});
});

现在你的问题是,如果你将作者数据放入 /author 路由中,它在 author.cart 路由中也是可见的。但一个简单的解决方案是将 author 路由保持为空,仅使用 {{outlet}} 作为模板,并将作者的内容放入 author.index 路由。

这将为您提供如下路线:

/author/1 这将呈现作者 1

author.index 路线

/author/1/cart/A 这将呈现作者 1 和购物车 A

author.cart 路线