javascript - 在 Ember.js 中获取路由列表

标签 javascript ember.js

在我的主页(index.hbs)上,我需要显示符合给定条件(例如具有特定属性)的每条路线的链接列表。所以我需要的是这样的:

// Define a route with some attribute
App.FirstRoute = Ember.Route.extend({
    showOnIndex: true
});

// Get a list of visible routes in the IndexController
visibleRoutes: function() {
    var routes = /* How to do this */
    return routes.filter(function(route) {
        route.get('showOnIndex'));
    });
}.property()

问题是如何获取路线。我发现我可以通过以下方式获取路线名称列表:

var router = this.get('target');
var names = router.router.recognizer.names;

但我不知道如何将它们转换为 Route 对象。据推测,Router 拥有执行此操作的信息,但 AFAICS 并未公开公开该信息。有什么建议么?

最佳答案

使用容器和查找怎么样?

Ember.keys(App.Router.router.recognizer.names).map(function(name) {
  return App.__container__.lookup('route:' + name);
}).compact();

我知道您访问私有(private)的__container__。但通常情况下您不应该访问所有路由。

关于javascript - 在 Ember.js 中获取路由列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28274005/

相关文章:

javascript - 我怎样才能解构一个 React Prop 并仍然访问其他 Prop ?

javascript - 使用 supabase 计算 DISTINCT 值的出现次数

javascript - 如何使用 apache cordova 检查 Android 应用程序的内存使用情况

ember.js - 在 EmberJS 中对列表进行排序并将其反射(reflect)在 View 中

javascript - Ember JS 加载和错误子状态

ember.js - Ember : How do I find handlebars partial in the directory?

javascript - 向文档动态添加 CSS 规则时等待应用样式

javascript - 该脚本工作正常,但不在 'google-apps-script' 中

ember.js - 获取 ember 组件来维护跨路由转换的状态

Ember.js 测试 : follow <a> link