3

j'utilise $routeParams comme ce moment:

Ma fonction de l'usine:

angular.module('fifaApp') 
    .factory('FifaService', ['$http', 
    function($http) { 
     var sdo = { 
     getTeamDetails: function(code) { 
      var promise = $http.get('api/team/' + code); 
      promise.success(function(data, status, headers, conf) { 
      return data; 
      }); 
      return promise; 
     } 
     } 
     return sdo; 
    } 
    ]); 

fonction contrôleur:

.controller('TeamDetailsCtrl', 
    ['FifaService','testt', 
    function(FifaService,testt) { 
     var self = this; 
     self.team = testt.data; 
    } 
]); 

config:

angular.module('fifaApp', ['ngRoute']) 
.config(function($routeProvider) { 
.when('/login', { 
     templateUrl: 'views/login.html' 
    }) 
.when('/team/:code', { 
     templateUrl: 'views/team_details.html', 
     controller:'TeamDetailsCtrl as teamDetailsCtrl', 
     resolve: { 
      testt: ['$routeParams','UserService', 
      function($routeParams, UserService) { 
      return FifaService.getTeamDetails($routeParams.code); 
     }] 
    } 
}); 
$routeProvider.otherwise({ 
     redirectTo: '/' 
}); 
}); 

Mais views/team_details.html ne s'affiche pas. Des idées? Meilleures salutations

Répondre

1

La fonction Calllback n'a pas la capacité de retourner des données. Votre méthode 'getTeamDeatails' devrait renvoyer une promesse d'utiliser des callbacks, pour cela vous devez retourner '$ http.get' qui retourne déjà l'objet promesse.

getTeamDeatails: function() { 
     var promise = $http.get('api/team'); 
     promise.then(function(resp){ 
     return resp.data; 
     }); 
     return promise; 
} 

la dépendance FifaService Ajouter manquant dans la détermination méthode

Resolve

resolve: { 
    testt: ['$routeParams', 'FifaService', 
    function($routeParams, FifaService) { 
     return FifaService.getTeamDetails($routeParams.code); 
}] 
+0

qui ne contribue pas:/ – user1665355

+0

Avez-vous essayé ?? –

+0

Oui, c'est aussi 'getTeamDetails'. dans le code – user1665355

-1

Je ne sais pas s'il est votre problème, mais vous devez utiliser le paramètre controllerAs.

Je veux dire ne pas utiliser contrôleur: 'TeamDetailsCtrl comme teamDetailsCtrl'

mais contrôleur: 'TeamDetailsCtrl', controllerAs: 'teamDetailsCtrl'

https://docs.angularjs.org/api/ngRoute/provider/ $ routeProvider

+0

"Si nous utilisons la clé du contrôleur et définir le changement de nom, ou le définir séparément en utilisant la touche controllerAs, il n'y a pas de différence fonctionnelle.Il est purement une préférence personnelle."à partir de livre angulaire et en cours d'exécution :) – user1665355

+0

La prochaine fois si vous voulez une aide réelle, ajouter des journaux d'erreurs –

2

Je suppose que $routeParams doesn ne fonctionne pas en resolve. Utilisez $route.current.params à la place:

getTeamDeatails: function() { 
     var promise = $http.get('api/team'); 
     promise.then(function(resp){ 
     return resp.data; 
     }); 
     return promise; 
} 

resolve: { 
    testt: ['$route', 'FifaService', 
    function($route, FifaService) { 
     return FifaService.getTeamDetails($route.current.params.code); 
}] 
+0

Absolument correct @ ehsan88 –