Javascript 如何在angularjs中调用控制器内部的函数
我在登录控制器中有两个函数,两个函数都是 实现登录目的, 在这个控制器中!范围.isLoggedIn条件满足,需要检查内部条件是否满足。 我需要在应用程序中永久登录,以便在本地会话存储中存储用户ID和密码凭据 每当localStorage中有可用的值时,我需要执行automaticLogin函数, 我检查了localStorage数据是否可用,是否处于if状态 如果用户ID和密码在localStorage中都可用,我需要执行automaticLoginUser函数 如果没有,则无需执行automaticLogin功能 每当我试图执行automaticLoginUser函数时,就会出现错误 TypeError:scope.automaticLoginUser不是函数错误。 提前谢谢你Javascript 如何在angularjs中调用控制器内部的函数,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,我在登录控制器中有两个函数,两个函数都是 实现登录目的, 在这个控制器中!范围.isLoggedIn条件满足,需要检查内部条件是否满足。 我需要在应用程序中永久登录,以便在本地会话存储中存储用户ID和密码凭据 每当localStorage中有可用的值时,我需要执行automaticLogin函数, 我检查了localStorage数据是否可用,是否处于if状态 如果用户ID和密码在localStorage中都可用,我需要执行automaticLoginUser函数 如果没有,则无需执行autom
app.controller('LoginCtrl', ['$scope',
'userService', '$state', '$rootScope','BackendService', 'CartService',
function(scope, userService, $state, rootScope, BackendService, CartService) {
scope.user = {};
scope.isLoggedIn = false;
scope.userId = CartService.getuserId();
scope.userPassword = CartService.getuserPassword();
if (!scope.isLoggedIn) {
console.log('in side isLoggedIn');
if (scope.userId !== undefined && scope.userPassword !== undefined) {
var loginId = scope.userId;
var password = scope.userPassword;
scope.user.loginId = loginId;
scope.user.password = password;
console.log('after user' + scope.user);
var user = scope.user;
scope.automaticLoginuser(user);
}
scope.automaticLoginuser = function(user) {
alert("Inside automaticLoginuser");
CartService.saveuserId(scope.user.loginId);
CartService.saveuserPassword(scope.user.password);
userService.loginuser(user)
.then(function(response) {
scope.userUuid = response.data.userUuid;
userService.setuserUuid(scope.userUuid);
if (response.data.status === 'success') {
CartService.saveFuuid(scope.fuuid);
$state.go("app.userHome");
} else {
$state.go("app.login");
}
});
};
scope.loginuser = function(user) {
CartService.saveuserId(scope.user.loginId);
CartService.saveuserPassword(scope.user.password);
userService.loginuser(user)
.then(function(response) {
scope.userUuid = response.data.userUuid;
userService.setuserUuid(scope.userUuid);
if (response.data.status === 'success') {
$state.go("app.userHome");
} else {
$state.go("app.login");
}
});
};
}
]);
scope.automaticLoginuser
是在if语句之后定义的。首先要做的是在控制器的更高层定义方法。作用域。在if语句之后定义automaticLoginuser
。首先要做的是在控制器的更高层定义方法。首先,在前端的任何位置(包括本地会话存储)保存用户用户名和密码是多么不明智。希望你能以某种方式解决它
function automaticLoginuser(user) {
alert("Inside automaticLoginuser");
CartService.saveuserId(scope.user.loginId);
CartService.saveuserPassword(scope.user.password);
userService.loginuser(user)
.then(function(response) {
scope.userUuid = response.data.userUuid;
userService.setuserUuid(scope.userUuid);
if (response.data.status === 'success') {
CartService.saveFuuid(scope.fuuid);
$state.go("app.userHome");
} else {
$state.go("app.login");
}
});
};
其次,您面临的问题是,您试图在声明范围之前在控制器内调用范围。无论如何,这是不必要的,因为$scope是一个实例,angular使用控制器实例化它,以便您能够从DOM调用它
因此,正确的做法是正常定义函数,因为您只计划在控制器中调用它
function automaticLoginuser(user) {
alert("Inside automaticLoginuser");
CartService.saveuserId(scope.user.loginId);
CartService.saveuserPassword(scope.user.password);
userService.loginuser(user)
.then(function(response) {
scope.userUuid = response.data.userUuid;
userService.setuserUuid(scope.userUuid);
if (response.data.status === 'success') {
CartService.saveFuuid(scope.fuuid);
$state.go("app.userHome");
} else {
$state.go("app.login");
}
});
};
然后正常地打电话
automaticLoginuser(user);
首先,我不能夸大将用户用户名和密码保存在前端的任何位置(包括本地会话存储)是多么不明智。希望你能以某种方式解决它 其次,您面临的问题是,您试图在声明范围之前在控制器内调用范围。无论如何,这是不必要的,因为$scope是一个实例,angular使用控制器实例化它,以便您能够从DOM调用它 因此,正确的做法是正常定义函数,因为您只计划在控制器中调用它
function automaticLoginuser(user) {
alert("Inside automaticLoginuser");
CartService.saveuserId(scope.user.loginId);
CartService.saveuserPassword(scope.user.password);
userService.loginuser(user)
.then(function(response) {
scope.userUuid = response.data.userUuid;
userService.setuserUuid(scope.userUuid);
if (response.data.status === 'success') {
CartService.saveFuuid(scope.fuuid);
$state.go("app.userHome");
} else {
$state.go("app.login");
}
});
};
然后正常地打电话
automaticLoginuser(user);
您只需重新排序功能即可
var-app=angular.module(“myApp”,[]);
应用程序控制器('LoginCtrl',['$scope',
/*“userService”、“$state”、“$rootScope”、“BackendService”、“CartService”*/
函数(scope/*,userService,$state,rootScope,BackendService,CartService*/){
scope.automaticLoginuser=函数(用户){
警报(“内部自动登录用户”);
/*CartService.saveuserId(scope.user.loginId);
CartService.saveuserPassword(scope.user.password);
userService.loginuser(用户)
.然后(功能(响应){
scope.userUuid=response.data.userUuid;
userService.setuserUuid(scope.userUuid);
如果(response.data.status==='success'){
CartService.saveFuuid(scope.fuuid);
$state.go(“app.userHome”);
}否则{
$state.go(“app.login”);
}
});*/
};
scope.loginuser=函数(用户){
/*CartService.saveuserId(scope.user.loginId);
CartService.saveuserPassword(scope.user.password);
userService.loginuser(用户)
.然后(功能(响应){
scope.userUuid=response.data.userUuid;
userService.setuserUuid(scope.userUuid);
如果(response.data.status==='success'){
$state.go(“app.userHome”);
}否则{
$state.go(“app.login”);
}
});*/
};
scope.user={};
scope.isLoggedIn=false;
scope.userId='admin';//CartService.getuserId();
scope.userPassword='admin';//CartService.getuserPassword();
如果(!scope.isLoggedIn){
console.log('in side isLoggedIn');
if(scope.userId!==未定义&&scope.userPassword!==未定义){
var loginId=scope.userId;
var password=scope.userPassword;
scope.user.loginId=loginId;
scope.user.password=密码;
console.log('user'之后+scope.user);
var user=scope.user;
范围.自动登录用户(用户);
}
}
}
]);代码>
您只需重新排序功能即可
var-app=angular.module(“myApp”,[]);
应用程序控制器('LoginCtrl',['$scope',
/*“userService”、“$state”、“$rootScope”、“BackendService”、“CartService”*/
函数(scope/*,userService,$state,rootScope,BackendService,CartService*/){
scope.automaticLoginuser=函数(用户){
警报(“内部自动登录用户”);
/*CartService.saveuserId(scope.user.loginId);
CartService.saveuserPassword(scope.user.password);
userService.loginuser(用户)
.然后(功能(响应){
scope.userUuid=response.data.userUuid;
userService.setuserUuid(scope.userUuid);
如果(response.data.status==='success'){
CartService.saveFuuid(scope.fuuid);
$state.go(“app.userHome”);
}否则{
$state.go(“app.login”);
}
});*/
};
scope.loginuser=函数(用户){
/*CartService.saveuserId(scope.user.loginId);
CartService.saveuserPassword(scope.user.password);
userService.loginuser(用户)
.然后(功能(响应){
scope.userUuid=response.data.userUuid;
userService.setuserUuid(scope.userUuid);
如果(response.data.status==='success'){
$state.go(“app.userHome”);
}否则{
$state.go(“app.login”);
}
});*/
};
scope.user={};
scope.isLoggedIn=false;
scope.userId='admi