2016-12-29 8 views
0

Я пытаюсь передать параметры разрешения на угловой компонент с помощью ui router. Моя конфигурация UIRouter, как показано ниже: -Параметр разрешения разрешения для углового компонента в UI Router

.state(memberConstants.memberMVLicense, { 
      url: "/mvlicense", 
      template: '<member-mvlicense member-id="$resolve.memberId" members="$resolve.members"></member-mvlicense>', 
      resolve: { 
       memberId: ["$stateParams", function ($stateParams) { 
        return $stateParams.memberId; 
       }], 
       members: ["$stateParams", "$q", "factory.membersMVLicenses", 
        function ($stateParams: ng.ui.IStateParamsService, $q: ng.IQService, 
         membersMVLicensesService: data.member.IMembersMVLicensesService) { 
         var deferred = $q.defer(); 
         membersMVLicensesService.getByMemberId($stateParams["memberId"]).then((response) => { 
          // response is not null and I got some data for sure 
          deferred.resolve(response); 
         }); 
         return deferred.promise; 
       }] 
      } 
    }) 

В моем компоненте я могу видеть MemberID при этом журнале консоли, но члены всегда неопределенное при выполнении console.log. Я уверен, что в моем пути я решил не правильно его передавать, но я не могу заставить его работать. Я изображу ниже, так как вы можете увидеть одно консольное log stamement, приносящее число и одну консоль. Неверная печать. Любая помощь будет очень ценна

module app.member { 

    class MemberMvlicenseGrid implements ng.IComponentOptions { 
     public controller: any; 
     public template: string; 
     public templateUrl: string; 
     public transclude: boolean; 
     public controllerAs: string; 
     public bindings: { [boundProperty: string]: string }; 
     constructor() { 

      this.controller = MemberMVLicenseGridController; 
      this.templateUrl = "app/member/member-mvlicense-grid.html"; 
      this.transclude = false; 
      this.controllerAs = "vm"; 
      this.bindings = { 
       "memberId": "<", 
       "members": "<" 
      }; 
     } 
    } 

class MemberMVLicenseGridController implements ng.IController { 

     public memberId: string; 
     public members: model.member.IMembersMVLicensesResult[]; 

     public $onInit(): void { 
      console.log(this.memberId);; 
      console.log(this.members); 
     } 
} 
    angular.module("app.member").component("memberMvlicenseGrid", new     MemberMvlicenseGrid()); 
} 

enter image description here

+0

Это Угловое 1 или 2, потому что ваш код подобен angular1 –

+0

это угловой 1 с машинопись –

ответ

1

Насколько я могу видеть из скриншота Devtools, компонент memberMvlicenseGrid не передается какой-либо members атрибут, только memberId прошло:

<member-mvlicense-grid member-id="vm.memberId" class="..."> 

As вы регистрируете this.members в своем контроллере, ожидается, что вы получите неопределенный.

Скорее всего, вы хотите настроить шаблон для memberMvlicense компонента быть

<member-mvlicense-grid member-id="vm.memberId" members="vm.members"> 
+0

спасибо, я понял, что это просто момент позже, когда я разместил вопрос, но собираюсь принять ур ответ в качестве ответа, как вы подняли правильную вещь –