kann nicht mehrere Methoden zu $ FirebaseObject hinzufügen Ich habe gearbeitet, meine abgeflachten Daten zu kombinieren, aber wenn ich meine $ FirebaseObject-Dienst erweitern, habe ich einige wirklich seltsame Verhalten. Ich benutze eine Fabrik, um Benutzerdaten zurückzugeben, zum Beispiel den vollen Namen, der gut funktioniert. Aber wenn ich versuche, eine zweite Methode hinzuzufügen, kann ich nicht auf diesen Befehl zugreifen.
Meine Fabrik:
// 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));
}
}
]);
Das Merkwürdige ist, dass getFullName ganz gut funktioniert, werden alle sugjestions?
ich keine Sache Bug Test habe zurückkehren, aber wenn ich ersetzen 'console.log ("teamObj.teamName:" + teamObj.teamName);' mit 'return teamObj.teamName' Es gibt mir die gleichen Fehler, "diese" ist immer noch nicht definiert –