2017-01-02 32 views
0

雖然我正在嘗試按照教程,在using-and-creating-angularjs-pipes頁面中,this.helpers不工作,因爲它僅在綁定發生之前運行。在angular-meteor組件上進行綁定

我不知道這是教程中的錯誤還是教程寫入後發生了變化。

當我嘗試在this.helpers函數中執行console.info(binding property)時,結果是未定義的。 當我在$ 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 ''; 
     } 

當再次運行時,它通常會給你你所期望的