我在一个项目中使用 Mozilla Persona。我想在loggedInUser
之后更新onlogin
。但是loggedInUser
是传递给的对象的属性navigator.id.watch()
。
navigator.id.watch()
被调用一次(在 AngularJS 服务中)。我应该再次调用它,传递完整的对象吗?好像不太对。我错了吗?=P
这是我的服务:
app.factory('persona', function ($rootScope, $http) {
navigator.id.watch({
loggedInUser: null,
onlogin: function onlogin(assertion) {
console.log(this);
$http.post('/signIn', { assertion: assertion })
.then(function (data, status, headers, config) {
$rootScope.$broadcast('signIn', data.data);
}, function (data, status, headers, config) {
$rootScope.$broadcast('signInError', data.data);
});
},
onlogout: function onlogout(param) {
$http.get('/signOut')
.then(function (data, status, headers, config) {
$rootScope.$broadcast('signOut', data.data);
}, function (data, status, headers, config) {
$rootScope.$broadcast('signOutError', data.data);
});
}
});
return {
signIn: function signIn() {
navigator.id.request();
},
signOut: function signOut() {
navigator.id.logout();
}
};
});