0
私は平坦化されたデータを結合する作業を行っていますが、$ firebaseObjectサービスを拡張するときには、私はファクトリを使用してユーザーデータ(たとえばフルネーム)を返します。これは正常に動作します。しかし、私は2番目のメソッドを追加しようとすると私はこのコマンドにアクセスすることはできません。
私の工場:
// user factory
app.factory("User", ["$firebaseObject", "$firebaseRef",
function($firebaseObject, $firebaseRef) {
// create a new service based on $firebaseObject
var User = $firebaseObject.$extend({
// these methods exist on the prototype, so we can access the data using `this`
getTeamName: function() {
console.log("this: " + this); // Logs: this: [object Object]
console.log("full name: " + this.firstName + " " + this.lastName); // Logs: full name: undefined undefined
console.log("this.teams: " + this.teams); //Logs: this.teams: undefined
var teamKey = this.teams.$value; // TypeError: Cannot read property '$value' of undefined
console.log("teamKey: " + teamKey);
var teamObj = $firebaseObject($firebaseRef.teams.child(teamKey));
console.log("teamObj.teamName: " + teamObj.teamName);
},
getFullName: function() { // Runs just fine
return this.firstName + " " + this.lastName;
}
});
return function(uid) {
// create an instance of User (the new operator is required)
return new User($firebaseRef.users.child(uid));
}
}
]);
奇妙なことがgetFullNameがうまく動作することで、任意のsugjestions?
何に戻らない
getTeamName
ように見えますが、私は交換するとき「はconsole.log( 『teamObj.teamName:』 + teamObj.teamNameを);」 'return teamObj.teamName'と同じエラーが表示されますが、「これ」はまだundifinedです –