在NG Docs中,它说$ route的路由属性返回所有已配置路由的Array,但是我从中得到的是(console.log($route.routes)
):
它不仅不是数组,而且还为每条路由显示两个键,一个为控制器,一个为新键。
如何在不对此属性进行任何操作的情况下获取路线的示例数组,从而可以基于生成导航route in routes
。
基本上["/home", "/about", ...]
就像一个桃子一样轻松自如
我想避免将其转换为数组并删除键以得到我想要的结果。除非这里的NG忍者说我别无选择。
非常感谢
这些文档显然已经过时了,因为他们说这$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"]
抱歉,这不是您想要的答案,但这可能是获得所需内容的唯一方法。希望至少能为您指明正确的方向。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句