2017-01-02 13 views
0

私はこのチュートリアルに従おうとしていますが、using-and-creating-angularjs-pipesページでは、this.helpersが動作していません。角流星コンポーネントへのバインド

チュートリアルやチュートリアルの作成後に変更された内容が間違っているかどうかはわかりません。

this.helpers関数でconsole.info(バインディングプロパティ)を実行しようとしているとき、結果は未定義です。 $ onInitで同じconsole.infoを実行しているときに動作しています。

どうすればいいですか?

チュートリアルからのコードに基づいてコード、https://angular-meteor.com/tutorials/socially/angular1/using-and-creating-angularjs-pipes

class PartyCreator{ 
    constructor($scope){ 
     'ngInject'; 
     $scope.viewModel(this); 
     this.subscribe('users'); 

     this.helpers({ 
      creator:()=> { 
       console.info(this.party) //returns undefined 
       if(!this.party){ 
        return ''; 
       } 
       const owner = this.party.owner; 
       if(Meteor.userId() !== null && owner === Meteor.userId()) { 
        return 'me'; 
       } 

       return Meteor.users.findOne(owner) || 'nobody'; 
      } 
     }) 
    } 


    $onInit(){ 
     console.info(this.party) //returns valid party object 
    } 
} 
+0

期待あなたがパーティーに加入していないあなたを与えるだろうが、 – Mikkel

答えて

0

ヘルパーは、データの変更、基本的にすべての時間を複数回実行、またはサブスクリプションが有効になっている場合。あなたのコードでは、データが返されない可能性があります(通常は初回)。

この場合に対処するために既に存在してコードがあります:

 if(!this.party){ 
      return ''; 
     } 

それが再び実行された場合、それは通常、あなたが