角度JS:$location注入未定义
Angular JS: $location injection undefined
我正在尝试以这样一种方式配置我的路由,以便在用户未登录时重定向到登录页面。这是我的代码:
angular.module('witBiz.services', []);
angular.module('witBiz.controllers', ['witBiz.services']);
var witBizModule = angular.module('witBiz', ['ngRoute' , 'witBiz.controllers', 'witBiz.services' ]);
witBizModule.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/login', {templateUrl: 'resources/views/login.html', controller: 'LoginController'});
$routeProvider.when('/index', {templateUrl: 'resources/views/index.html', controller: 'IndexController'});
$routeProvider.otherwise({redirectTo: 'resources/views/index.html'});
}])
.run(['$rootScope', 'checkLogin', function($rootScope, checkLogin ,$routeProvider ) {
$rootScope.$on('$routeChangeSuccess', function () {
if (checkLogin())
$location.url("/index");
})
}])
.factory('checkLogin', function(){
return function() {
//perform real logic here
return true;
}
})
基本上我声明模块和服务。现在问题是$location没有定义,所以我得到错误。我试图像这样将$location作为依赖项注入,但我得到了未定义的注入(injpt):
.run(['$rootScope', 'checkLogin', '$location', function($rootScope, checkLogin ,$location) {
$rootScope.$on('$routeChangeSuccess', function () {
if (checkLogin())
$location.url("/ciao");
})
}])
所以我想知道如何在我的"运行"方法中使用内置的$location服务......为什么我可以将其作为依赖项注入为$rootScope或检查登录?!
我正在使用角度 1.2.0 rc2。
谢谢
这是一个工作示例 http://plnkr.co/edit/gf5LhTjqhz4MoZfVcqIt?p=preview
无法重现错误,$location在 .run 中不起作用
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- $window.ga在AngularJS事件中未定义
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- Ember服务在注入组件并在计算属性中使用后是未定义的
- 使用index.ts文件导出类会导致注入的构造函数中未定义
- 注入应用程序的角度控制器未定义
- 当使用Angular1+ES6时,控制器函数中未定义依赖注入,控制器是一个类
- 角度JS:$location注入未定义
- 使用 Karma 进行角度测试:注入控制器后,$controller() 未定义
- 尽管注入了$http,但它在服务中是未定义的
- Angular$route服务没有;t被按时注入到控制器中——最初在页面加载时未定义,但后来一切都像符咒一样工作
- (angularjs)得到'ReferenceError:$scope未定义'当注入控制器时
- React Js注入(未定义React)
- Angular在控制器日志中注入resolve未定义
- Angular依赖注入——不能实例化工厂/未定义工厂
- 注入控制器时,服务未定义