2017-04-06 2 views
0

Je n'ai presque plus rien trouvé à faire sur ce que j'ai fait de mal ici ... Peu importe ce que j'essaie, ma liaison de composants est toujours indéfinie même si je peux voir clairement les données.Résolutions de résolution angulaire toujours indéfinies

config:

.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}' 
}); 

Service:

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

Composant:

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

J'ai exactement le même appel http à l'intérieur du contrôleur et renvoie les données comme prévu. Cependant, quand je le déplace dans la résolution, il retourne toujours indéfini ... Des pensées?

+0

pouvez-vous faire un plunker qui reproduit ce problème? – svarog

+0

pourquoi la danse avec '$ resolve'? Pouvez-vous injecter directement des revendications dans le contrôleur? 'controller: function (claims) {...}' – Duncan

+0

Je vais essayer ça demain @Duncan et afficher les résultats. – Mickers

Répondre

0

J'ai dû prendre un peu de temps à partir de cela, mais après une longue pause, j'ai trouvé mon problème. Dans ce projet, j'utilisais une ancienne version de ui.router (0.2.18). Il y a beaucoup de projets qui utilisent cette version là où je suis. Quand je suis passé à AngularJs 1.5.x je testais avec une version plus à jour mais quand j'ai essayé de migrer mon nouveau code dans un nouveau projet, j'avais toujours l'ancienne version référencée comme une dépendance. J'utilise maintenant 0.4.2 et cela a résolu mon problème. Merci.