0

私の Home コンポーネントは routerLink をクリックしない限り読み込まれませんが、アプリケーションの起動時に読み込まれるはずです。

コンポーネントの横にネストされ、ホーム コンポーネントのロード時にフィード データを取得するプロパティがあります。

export class HomeComponent implements OnInit, OnDestroy {
   public subscription: Subscription;
   constructor(public router: Router, public userService:UserSettingsService, public safetyService: SafetyService) {
      var self = this;
      // Is called and data is loaded.
      self.loadDataForSafety(userService.defaultFilterObject);
      this.subscription = this.userService.filterObjectAnnounced$.subscribe(
          filtered => {
              self.selectedFilters = filtered;
              self.loadDataForSafety(self.selectedFilters);
          }
      );
   }

}

ngOnInit() {
  var self = this;
  this.subscription = this.userService.filterObjectAnnounced$.subscribe(
      filtered => {
          self.selectedFilters = filtered;
          self.loadDataForSafety(self.selectedFilters);
      }
  );
}

loadDataForSafety(filterObj) {
   var filterObj = filterObj;
   var self = this;
   var lowestDataLevel = 'RegionNum';
this.components.forEach(function(cardElem){
  if(cardElem.id == "safetyWidget"){
      self.safetyService.getAllSafetyElements(filterObj)
      .map(data => {
         // Itterate through array of objects returned
         Object.keys(cardElem.cardData).forEach(card => {
           var keyID = '';
           if(card == '3'){
             keyID = 'SBOWT';
           }else if(card == '2'){
             keyID = 'RWT';
           }else if(card == '4'){
             keyID = 'BHOIT';
           }else if(card == '0'){
             keyID = 'Backing';
           }
           data.forEach(elem =>{
             cardElem.cardData[card].push({
               "text": elem[lowestDataLevel],
               "id": elem[lowestDataLevel],
               "value": elem[keyID],
               "percent": (Math.random() * (99 - 20) + 20) + "%"
             });
           })
         })
         // DATA IS PRESENT
         return cardElem.cardData;
      })
      .subscribe(data => {
        // DATA IS PRESENT HERE
        cardElem["cardData"] = data;
      })
  }
})

}

コンストラクターは開始されますが、コンポーネントがレンダリングされないため、ngOnInit が開始されることはありません。

ログに記録されるエラーもありません。

4

0 に答える 0