2016-04-14 12 views
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?

答えて

0

は、私は、バグテストに任意のものを返しませんでした

+0

何に戻らないgetTeamNameように見えますが、私は交換するとき「はconsole.log( 『teamObj.teamName:』 + teamObj.teamNameを);」 'return teamObj.teamName'と同じエラーが表示されますが、「これ」はまだundifinedです –

関連する問題