0

js`,我已经声明了一些这样的嵌套路由:

Router.map(function() {
  this.route('index', { path: '/' })
  this.route('orders', function() {
    this.route('details', { path: '/:order_id' });
  });
  this.route('not-found', { path: '/*path' });
});

这里的orders.details模板没有渲染,但它会转到正确的路由文件,这是路由文件:

import Route from '@ember/routing/route';

export default Route.extend({
  model(params) {
    const { order_id } = params;
    console.log('params', params);
    return order_id;
  },
  renderTemplate() {
    this.render('orders/details')
  }
});

orders我还在文件夹 中以嵌套方式声明了模板:在此处输入图像描述

这不会渲染orders/details模板,它总是转到orders模板。这是我的orders/details.hbs模板:

<h2>Order {{this.model}}</h2>
{{outlet}}

这是我导航到路线的方式: {{#link-to 'orders.details' order.id}}{{order.description}}{{/link-to}}

4

1 回答 1

0

正如@Gaurav 所说,看看您是否没有忘记{{outlet}}在您的订单模板中使用

{{!-- Orders.hbs --}}
{{!--  any content for orders--}}
{{outlet}} {{!-- orders.details will load here--}}

因此,如果您不包含 {{outlet in your orders template ,则不会加载 orders.details }}

于 2021-01-28T06:39:11.343 回答