打印出 Ember 模板中的所有父子路由
Print out all of the parent and child routes in the template for Ember
假设我有一条如下所示的 Ember 路线
myApp/RouteA/RouteB/RouteC
有没有办法在我的路由或控制器中获取不同路由级别的所有名称?
原因是因为我正在尝试编写一个 ember 动态生成面包屑的组件。
这里有一个更具体的例子
虽然 @jelhan 评论了一个很好的现有插件,但如果您需要,可以直接实现自己的插件。
Ember 有一个 public router service which can be used to get info about the current route. One such method that would work here is currentRouteName。想象一下路由结构:
Router.map(function() {
this.route('about');
this.route('blog', function () {
this.route('post', { path: ':post_id' });
});
});
currentRouteName
将 return
index
当您访问 /
about
当您访问 /about
blog.index
当您访问 /blog
blog.post
当您访问 /blog/some-post-id
您可以在分隔符上拆分以获得不同的路线部分来构建您的面包屑。在您的面包屑组件中,只需注入 routerService 并使用计算 属性 来获取当前面包屑(这将在应用更改路由时更新)
import Component from '@ember/components';
import { inject } from '@ember/service';
import { computed } from '@ember/object';
export default Component.extend({
router: inject(),
breadcrumbs: computed('router.currentRouteName', function(){
// build your breadcrumbs however you see fit
})
})
假设我有一条如下所示的 Ember 路线
myApp/RouteA/RouteB/RouteC
有没有办法在我的路由或控制器中获取不同路由级别的所有名称?
原因是因为我正在尝试编写一个 ember 动态生成面包屑的组件。
这里有一个更具体的例子
虽然 @jelhan 评论了一个很好的现有插件,但如果您需要,可以直接实现自己的插件。
Ember 有一个 public router service which can be used to get info about the current route. One such method that would work here is currentRouteName。想象一下路由结构:
Router.map(function() {
this.route('about');
this.route('blog', function () {
this.route('post', { path: ':post_id' });
});
});
currentRouteName
将 returnindex
当您访问/
about
当您访问/about
blog.index
当您访问/blog
blog.post
当您访问/blog/some-post-id
您可以在分隔符上拆分以获得不同的路线部分来构建您的面包屑。在您的面包屑组件中,只需注入 routerService 并使用计算 属性 来获取当前面包屑(这将在应用更改路由时更新)
import Component from '@ember/components';
import { inject } from '@ember/service';
import { computed } from '@ember/object';
export default Component.extend({
router: inject(),
breadcrumbs: computed('router.currentRouteName', function(){
// build your breadcrumbs however you see fit
})
})