我正在使用ng-token-auth和devise-token-auth,我很疯狂。
经过几个小时努力设置后,我无法将用户(我已登录)传递给工厂。
我的控制器
app.controller('sign_in_controller', function($scope, UserData){
$scope.handleLoginBtnClick = function() {
$auth.submitLogin($scope.loginForm)
.then(function(resp) {
})
.catch(function(resp) {
});
};
$scope.$on('auth:login-success', function(ev, user, UserData) {
console.log(user);
UserData.addUser(user); <---Here is where i'm trying to send my user to factory
});
}
我简单的工厂&gt;
app.factory('UserData', function(){
var user = {};
var interfaz = {
addUser: function(user){
debugger;
user = user;
},
getUser: function(){
return user;
}
}
return interfaz;
});
我得到的错误:
ypeError:无法读取属性&#39; addUser&#39;未定义的
我做错了什么?我尝试使用$ RootScope,但我不能......
非常感谢你。
答案 0 :(得分:1)
这是因为您在回调函数中将UserData
作为参数传递。
UserData
未定义,因此您会收到错误。
您已在控制器中注入UserData
,因此只需使用:
$scope.$on('auth:login-success', function(ev, user) {
console.log(user);
UserData.addUser(user);
});
答案 1 :(得分:0)
尝试更改命名惯例
复制以下代码并进行测试。这应该工作
app.factory('UserData', function(){
var _user = {};
var interfaz = {
addUser: function(user){
_user = user;
},
getUser: function(){
return _user;
}
}
return interfaz;
});
_user