2017-04-06 41 views
0

我剛剛放棄了弄清楚我在這裏做了什麼錯誤......無論我嘗試什麼,我的組件綁定總是未定義,即使我能清楚地看到數據傳入。Angular Resolve綁定總是未定義

配置:

.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

明天我會試試@Duncan併發回什麼結果。 – Mickers

回答

0

我不得不離開這段時間,但經過漫長的呼吸,我發現我的問題。在這個項目中,我使用的是舊版本的ui.router(0.2.18)。有很多項目在我所在的地方使用這個版本。當我轉移到AngularJs 1.5.x時,我正在測試一個更新的版本,但是當我嘗試將新代碼遷移到一個新項目中時,我仍然將舊版本引用爲依賴項。我現在使用0.4.2並解決了我的問題。謝謝。