0

Ich verwende Angular JS (Version 1.5.9) und den Angular UI Router (Version 1.0.0-rc.1). Wenn ich versuche, auf verbindliche Werte im Komponenten-Controller zuzugreifen, wird undefined angezeigt. Unten habe ich meinen Code geteilt.Winkelkomponente aufgelöste Werte zeigen undefined

Was ist falsch an meinem Code? Könnten Sie mir bitte zeigen, wie Sie dieses Problem lösen können?

router.config

 $stateProvider.state('app.user-datshboard', { 
     url: '/dashboard/:user', 
     views: { 
      '[email protected]':{ 
       templateUrl : getView('user-navbar') 
      }, 
      '[email protected]': { 
       templateUrl: getView('user-dashboard') 
      }, 
      'footer':{} 
     }, 
     params: { 
      user : null 
     }, 
     resolve: { 
      OurUser : function(){ 
       return 'nihao'; 
      } 
     } 

     } 
    }) 

Komponente

class UserDashboardController{ 
    constructor(API,$log,$state,$stateParams,$scope){ 
    'ngInject'; 
    // 
    $log.log(this); 
    this.API = API; 
    this.$scope = $scope; 
    this.$log = $log; 
    this.$timeout = $timeout; 
    this.$state = $state; 
    this.$stateParams = $stateParams; 
    this.$log.log(this.OurUser); 
    } 
} 

export const UserDashboardComponent = { 
templateUrl: './views/app/components/user-dashboard/user- dashboard.component.html', 
controller: UserDashboardController, 
controllerAs: 'vm', 
bindings: { OurUser : '=' } 
} 

Fehlerbildschirm

[error screen][1] 

Danke

+0

Sie müssen in Ihrem Component Controller überprüfen Sie diese http OnInit $ verwenden: //stackoverflow.com/a/43078999/3842364 – UnuSec

Antwort

0

Sie benötigen OurUser in jedem Controller oder einer Dienstleistung, zum Beispiel zu injizieren:

constructor(API, $log, $state, $stateParams, $scope, OurUser){ 
    // here you have access to OurUser 
} 

diese Weise brauchen Sie nicht bindings: { OurUser : '=' }

+0

Fehler erhalten "Unbekannter Provider: OurUserProvider <- OurUser" – user2709760

+0

Stellen Sie sicher, dass Ihr Komponentencontroller unter dem Routenpfad/demhboard/ verwendet wird. "OurUser" sollte für jeden Service oder Controller unter dieser Route injizierbar sein. Siehe auch diesen Artikel: https://toddmotto.com/resolve-promises-in-angular-routes/#coupling-routing-logic-with-controllers – Andriy

+0

Ich habe es oft versucht, aber keine Verwendung. Bitte geben Sie ein bisschen Code für diese ... – user2709760

Verwandte Themen