我有一些代码......
spa.service("testService", function($route, $location, $routeParams) {
this.testValue = $location.path();
})
这非常简单。我想要http://www.whatever.com
之后的路径。这个问题是我想要动态地获取该值。当我进入页面时我想要它,当我改变路线等时我想要它。
我已尝试使用$routes.current
我已尝试使用$location.current,path()
但无效。我不得不遗漏一些东西。我一遍又一遍地阅读文档,我不知道如何实现这一目标。
总体目标是在关联路线处于活动状态时,在我的页面上为某个类提供一些链接。我试图通过在分配给链接的控制器中创建一个函数来做到这一点,该函数返回一个布尔值,该函数基于我尝试声明的路径变量是否等于上述函数的输入。当函数输出true时,我使用ng-class
指令将类附加到正确的链接。
如何将testValue
分配给路线的动态值?
答案 0 :(得分:0)
要展开@acicali comment,您可以执行以下操作:
app.service('spasvc', function($rootScope, $location){
$rootScope.$on('$routeChangeSuccess', function(e) {
console.log('Route Change:', $location.path());
});
});
普兰克:http://plnkr.co/edit/ov5lxGdEBPcwNeq9lfxT?p=preview
但是,只有在计划改变服务的内部状态时,这才有意义。您可以将一些变量分配给$location.path()
的存储值。无论何处注入,它都没有多大用处。当然,您可以围绕它进行编码,但有更好的机制来处理...