如何将服务变量定义为当前路由
How to define service variable as current route?
我有一些代码。。。
spa.service("testService", function($route, $location, $routeParams) {
this.testValue = $location.path();
})
这很简单。我想要http://www.whatever.com
之后的路径。这样做的问题是,我希望动态地获得该值。当我进入页面时,我想要它,当我改变路线时,我需要它,等等。
我试过使用$routes.current
,我试过用$location.current,path()
,但都不起作用。我一定是错过了什么。我已经一遍又一遍地阅读了文档,我不确定如何实现这一点。
总的目标是当我的页面上的一些链接的相关路线处于活动状态时,为它们提供特定的类。我试图通过在分配给链接的控制器中创建一个函数来实现这一点,该函数根据我试图声明的路由变量是否等于上述函数的输入来返回布尔值。当函数输出true时,我使用ng-class
指令将类附加到正确的链接。
如何将testValue
分配给路由的动态值?
要扩展@acicali的评论,可以执行以下操作:
app.service('spasvc', function($rootScope, $location){
$rootScope.$on('$routeChangeSuccess', function(e) {
console.log('Route Change:', $location.path());
});
});
Plunk:http://plnkr.co/edit/ov5lxGdEBPcwNeq9lfxT?p=preview
然而,只有当您有改变服务内部状态的计划时,这才有意义。您可以指定一些变量来存储$location.path()
的值。无论在哪里注入,它都没有多大用处。当然,你可以围绕这一点进行编码,但有更好的机制来处理。。。
相关文章:
- 尝试使用Node.js动态路由从IMDB中抓取电影内容.但是在我的output.json文件中没有定义
- 当我将 GET /any 发送到自定义路由“GET /:id”时,我得到 req.params.id = 'favico
- 从自定义指令调用角度路由
- angular-index.html只识别默认路由中定义的函数
- 使用可选参数和默认模型定义路由
- 自定义 Mod 文件夹的角度路由问题
- Angular JS TypeError:无法读取路由上未定义的属性“id”
- 使用路由的未定义服务控制器
- 在路由配置中定义 AngularJS 中的 ng-view 动画
- 部分而不是 app.js 中的角度路由定义
- rootScope 在更改路由时变得未定义
- Ember Data 1.0 加载路由时出错:类型错误:无法设置未定义的属性“类型键”
- 无法读取路由参数中未定义的属性“名称”
- Angular JS:我们可以在没有定义路由的控制器上设置解析或承诺吗?
- 自定义骨干路由参数
- 定义节点 js 的模式路由
- 如何在反应路由器中将子路由定义为反应组件
- 骨干路由器路由定义,以处理所有这些条件
- 404上的rails js调用,可能不正确的路由定义
- 在为rest路由定义视图时,数据是否会被传递给request .locals ?