为了账号安全,请及时绑定邮箱和手机立即绑定

Angular ui-router 中的$state.go()报错?

Angular ui-router 中的$state.go()报错?

蝴蝶不菲 2018-08-17 10:09:41
当我不在回调函数中使用$state.go时,我的$state.go()正常工作当我写了一个service,并把$state.go()写入success函数中时就会报错。Cannot read property 'go' of undefined下面是部分代码$scope.logOut = function($state) {     logOutService.logout().success(function() {         alert('hahahhahah');         ls.remove("userdata");         $state.go('login');// 这一句报错         $rootScope.isLogin = false;     }).error(function() {       alert('登出失败');     }) }有没有遇到相似问题的? 我在stackoverflow上找到的答案尝试了都没什么用。
查看完整描述

1 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

你需要在controller里注入$state服务,在controller内都调用注入的$state,而不是再声明一次。
要理解这点,你可能需要了解一下什么叫做“依赖注入”。
并且,似乎你需要理解Javascript中变量的作用域,或者说是闭包的概念。被注入的$state的作用域,涵盖整个Controller,包括Controller内的各种函数内。
从本质上说,你在函数中声明了一个名为$state的参数,也就是覆盖了外部作用域那个被你注入的$state,所以在函数内部用$state就会出问题。解决方法就是不要声明这个参数。

查看完整回答
反对 回复 2018-09-15
  • 1 回答
  • 0 关注
  • 900 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信