我正在尝试在taking-cash
的{{outlet}}
中渲染taking-cash/index
:
router.js
:
this.route('retirement-options', function () {
this.route('taking-cash');
除非明确指定/index
路径,否则它不会在插座内呈现:
this.route('retirement-options', function () {
this.route('taking-cash', function() {
this.route('index', { path: '' });
});
});
为什么/index
不是隐含的,我不能在router.js
中指定它吗?
2条答案
按热度按时间3okqufwl1#
Ember仅为至少有一个其他子路由的路由自动提供索引路由。
让我们看一下您的示例:
这将创建三条路由:
retirement-options
retirement-options.index
retirement-options.taking-cash
retirement-options.index
和retirement-options.taking-cash
两者共享相同的父路由retirement-options
。retirement-options
本身不可导航。它将始终解析为retirement-options.index
路线,除非转换明确指向taking-cash
子路线。只要您添加另一个子路由到
retirement-options.taking-cash
,Ember就会自动为其创建索引路由。你可以通过创建一个路由来强制一个显式的索引路由,但是把一个索引路由作为唯一的叶节点并没有太大的价值。
有关 * 索引路线 * 的更多信息,请参阅以下指南:https://guides.emberjs.com/release/routing/defining-your-routes/#toc_index-routes
xqkwcwgp2#
Ember只会自动为路由提供索引路由,但它不需要有一个特别的子路由,它实际上是回调函数。
看看这个例子
索引部分并不是强制性的。2只要你声明了回调函数,索引就会出现。
这将与上面的示例完全相同。