angularjs firebase 用户身份验证服务未与视图通信
angularjs firebase user auth service not communicating with the views
我有一项服务将参数 pseudonym
传递给环境。我在我的观点中呼吁这个pseudonym
,但它根本没有出现。
如何解决此问题以在我的视图中显示值?
我的用户服务:
app.service('MyUser', ['DatabaseRef', 'firebase', function(DatabaseRef, firebase) {
var pseudonym ="";
var userId = firebase.auth().currentUser.uid;
return {
pseudonym: function() {
DatabaseRef.ref('/users/' + userId).once('value')
.then(function (snapshot) {
pseudonym = snapshot.val().pseudonym;
console.log("pseudony: ", pseudonym);
return pseudonym;
});
}
}
}]);
在我的控制台中,我看到了 pseudonym
的值。但在我看来 html 使用{{假名}}
这是示例视图控制器:
app.controller('ExampleCtrl', ["MyUser",
function (MyUser) {
$scope.pseudonym = MyUser.pseudonym();
}]);
Return .then
方法创建的承诺:
app.service('MyUser', ['DatabaseRef', 'firebase', function(DatabaseRef, firebase) {
//var pseudonym ="";
var userId = firebase.auth().currentUser.uid;
return {
getUserName: function() {
//return promise
return (
DatabaseRef.ref('/users/' + userId).once('value')
.then(function onSuccess(snapshot) {
let pseudonym = snapshot.val().pseudonym;
console.log("pseudony: ", pseudonym);
return pseudonym;
})
);
}
}
}]);
然后从该承诺中提取值:
var app = angular.module('app', []);
app.controller('loginController',['$scope', 'MyUser',function($scope, MyUser)
{
let promise = MyUser.getUserName();
//Extract data from promise
promise.then( function onSuccess(pseudonym) {
$scope.pseudonym = pseudonym;
console.log($scope.pseudonym);
});
}]);
对象的 .then
方法总是 returns 从处理函数返回的值(或承诺)派生的承诺,作为该 .then
方法的参数。
我有一项服务将参数 pseudonym
传递给环境。我在我的观点中呼吁这个pseudonym
,但它根本没有出现。
如何解决此问题以在我的视图中显示值?
我的用户服务:
app.service('MyUser', ['DatabaseRef', 'firebase', function(DatabaseRef, firebase) {
var pseudonym ="";
var userId = firebase.auth().currentUser.uid;
return {
pseudonym: function() {
DatabaseRef.ref('/users/' + userId).once('value')
.then(function (snapshot) {
pseudonym = snapshot.val().pseudonym;
console.log("pseudony: ", pseudonym);
return pseudonym;
});
}
}
}]);
在我的控制台中,我看到了 pseudonym
的值。但在我看来 html 使用{{假名}}
这是示例视图控制器:
app.controller('ExampleCtrl', ["MyUser",
function (MyUser) {
$scope.pseudonym = MyUser.pseudonym();
}]);
Return .then
方法创建的承诺:
app.service('MyUser', ['DatabaseRef', 'firebase', function(DatabaseRef, firebase) {
//var pseudonym ="";
var userId = firebase.auth().currentUser.uid;
return {
getUserName: function() {
//return promise
return (
DatabaseRef.ref('/users/' + userId).once('value')
.then(function onSuccess(snapshot) {
let pseudonym = snapshot.val().pseudonym;
console.log("pseudony: ", pseudonym);
return pseudonym;
})
);
}
}
}]);
然后从该承诺中提取值:
var app = angular.module('app', []);
app.controller('loginController',['$scope', 'MyUser',function($scope, MyUser)
{
let promise = MyUser.getUserName();
//Extract data from promise
promise.then( function onSuccess(pseudonym) {
$scope.pseudonym = pseudonym;
console.log($scope.pseudonym);
});
}]);
对象的 .then
方法总是 returns 从处理函数返回的值(或承诺)派生的承诺,作为该 .then
方法的参数。