Angular中的路由数组

时间:2014-03-05 14:22:59

标签: javascript angularjs

NG Docs中,它表示$ route的路径prop返回所有已配置路由的数组,但我得到的是(console.log($route.routes)):

enter image description here

不仅它不是一个数组,而且还显示每个路径的两个键,一个用于控制器,一个用于新的。

如何在不对此属性进行操作的情况下获取路径的示例数组,以便根据route in routes生成导航。

基本上是一种无忧无虑的方式让["/home", "/about", ...]像桃子一样

我想避免将其转换为数组并删除键以最终得到我想要的。除非这里的NG忍者说我别无选择。

非常感谢

1 个答案:

答案 0 :(得分:2)

文档显然已经过时,因为他们说$route.routes将是一个数组,但它显然是一个对象。所以获得数组的唯一真正方法是进行你所谈论的转换。每个路由在对象中有两个条目的原因是因为/about/about/都是/about路由的有效路径。为了简化任何歧义,Angular为所有路径添加尾随/的条目,然后重定向到没有尾部斜杠的路由。

进行转换时,您只需要原始路径(没有尾部斜杠),该路径应该是对象中具有.controller属性的所有路径。

类似于:

var routes = [];
angular.forEach($route.routes, function(route, key){
    if(route.controller) routes.push(route.originalPath);
});
// routes should now be ["/about","/home","/login"]

很抱歉,这不是你想要的答案,但它可能是获得你需要的唯一方法。希望至少指出你正确的方向。