在NG Docs中,它表示$ route的路径prop返回所有已配置路由的数组,但我得到的是(console.log($route.routes)
):
不仅它不是一个数组,而且还显示每个路径的两个键,一个用于控制器,一个用于新的。
如何在不对此属性进行操作的情况下获取路径的示例数组,以便根据route in routes
生成导航。
基本上是一种无忧无虑的方式让["/home", "/about", ...]
像桃子一样
我想避免将其转换为数组并删除键以最终得到我想要的。除非这里的NG忍者说我别无选择。
非常感谢
答案 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"]
很抱歉,这不是你想要的答案,但它可能是获得你需要的唯一方法。希望至少指出你正确的方向。