2017-04-06 2 views
0

나는 여기서 잘못한 것을 알아 내려고 포기했습니다. 아무리해도 내 구성 요소 바인딩을 시도해도 데이터가 가로 질러 보이는지 명확히 볼 수 있지만 바인딩은 항상 정의되지 않습니다.각도 해결 바인딩 항상 정의되지 않음

설정 :

.state('review', { 
    resolve: { 
     claims: function($stateParams, Review) { 
      return Review.getClaims(JSON.parse($stateParams.claims)); 
     } 
    }, 
    template: '<review-component claims="$resolve.claims"></review-component>', 
    url: '/review/{claims}' 
}); 

서비스 :

this.getClaims = function(claimIds) { 
    return $http.post(path + '/Overpayment/GetClaims', claimIds).then(
     function(response) { 
      return response.data; 
     } 
    ) 

구성 요소 :

.component('reviewComponent', { 
    bindings: { 
     claims: '<' 
    }, 
    controller: function(Review, $stateParams) { 
     var vm = this; 
     this.$onInit = function() { 
      console.log(vm.claims); 
     } 
    } 
} 

내가 컨트롤러 내부의 동일한 HTTP 호출이 예상대로 데이터를 반환합니다. 그러나 그것을 해결할 때 항상 정의되지 않은 값을 반환합니다 ... 어떤 생각입니까?

+0

이 문제를 재현 할 수 있습니까? – svarog

+0

왜'$ resolve'로 춤을 추겠습니까? 컨트롤러에 직접 클레임을 주입 할 수 있습니까? 'controller : function (claims) {...}' – Duncan

+0

나는 내일 그것을 시도 할 것이고, 어떤 결과를 게시 할 것이다. – Mickers

답변

0

나는 이것에서 약간의 시간이 걸렸지 만, 긴 호흡을 한 후에 나는 내 문제를 발견했다. 이 프로젝트에서 저는 이전 버전의 ui.router (0.2.18)를 사용하고있었습니다. 내가있는 곳에이 버전을 사용하는 프로젝트가 많이 있습니다. AngularJs 1.5.x로 옮겼을 때 최신 버전으로 테스트했지만 새로운 코드로 새 코드를 마이그레이션하려고 시도했을 때 종속성으로 참조되는 이전 버전이있었습니다. 지금 0.4.2를 사용 중이며 문제가 해결되었습니다. 감사.

관련 문제