我正在尝试使用angular构建登录功能;但是我得到了参考错误:
ReferenceError: $state is not defined
我理解 $ state 无法在登录功能内部工作,但我不确定在调用登录功能后重定向用户的正确程序是什么。
我的代码:
(function () {
'use strict';
angular
.module('app')
.controller('authController', authController);
authController.$inject = ['$scope','$state'];
function authController($scope,$state) {
$scope.login = login;
$scope.user = {email: '', pass: ''};
};
function login(){
this.dataLoading = true;
$state.go("dashboard");
}
})();
答案 0 :(得分:1)
login
函数应位于控制器上下文中,以访问已在控制器函数中注入的$ state依赖项。
如果你想从html调用login
函数,那么它应该只放在控制器中。
function authController($scope,$state) {
$scope.login = login;
$scope.user = {email: '', pass: ''};
function login(){
this.dataLoading = true;
$state.go("dashboard");
}
$scope.login = login; //to call method from html
};
或强>
由于某些技术原因(理想情况下不应该),您仍然希望将该功能置于角度上下文之外,然后您可以使用$state
angular.injector
服务
angular.injector(['app']).get('$state').go("dashboard");