Angularjs 调用登录函数后重定向用户
我正在尝试使用angular构建登录功能;但我得到了参考错误:Angularjs 调用登录函数后重定向用户,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我正在尝试使用angular构建登录功能;但我得到了参考错误: ReferenceError: $state is not defined 我知道$state在登录函数内部不起作用,但我不确定调用登录函数后重定向用户的正确过程是什么 我的代码: (function () { 'use strict'; angular .module('app') .controller('authController', authController);
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");
}
})();
该
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
};
或
由于某些技术原因,您仍然希望将该函数置于angular上下文之外(理想情况下不应该这样),然后您可以使用angular.injector
angular.injector(['app']).get('$state').go("dashboard");
只需在
authController()
中定义login()
函数。angular.injector()不需要模块名??第一个选项是可能的,但我希望在login函数中完成;而不是把它带回主控制器;第二种选择是黑客;也许我的逻辑不正确?@ArashKiani,您正在调用login
method?@PankajParkar,从我的视图ng submit=“login()”@PankajParkar抱歉,我在发送消息后立即注意到了修改;现在工作正常了!干得好,谢谢:)