我实际上使用Daftmonk fullstack生成器,我的问题有时当我尝试获取$resolved
的值时,它有时返回false
所以我按 F5 刷新。
我可以登录,然后我在导航栏上获得当前用户的名称,但它返回false,我无法在正文上获得当前用户的电子邮件或姓名。
答案 0 :(得分:0)
我实际上在另一个堆栈问题中找到了可能的解决方案。问题似乎来自client/components/auth/auth.service.js
异步代码存在问题。
在我的案例中有效的修复是对服务中的login()
函数进行以下更改:
login: function(user, callback) {
var cb = callback || angular.noop;
var deferred = $q.defer();
$http.post('/auth/local', {
email: user.email,
password: user.password
}).
/* Old code
// success(function(data) {
// $cookieStore.put('token', data.token);
// currentUser = User.get();
// deferred.resolve(data);
// return cb();
// }).
*/
/* New code */
success(function(data) {
$cookieStore.put('token', data.token);
currentUser = User.get(function (){
deferred.resolve(data);
return cb();
})
}).
error(function(err) {
this.logout();
deferred.reject(err);
return cb(err);
}.bind(this));
return deferred.promise;
},
这是来自其他堆栈问题的复制粘贴。可在此处找到原始且更详细的答案:getCurrentUser().role undefined in DaftMonk/generator-angular-fullstack