6

Ho un percorso per recuperare un singolo post e un servizio per interrogare la mia API per farlo. Ma ho bisogno di passare parametri dall'URL al servizio in modo da poter chiamare correttamente l'API. Non riesco a capire come farlo.

Questo è quello che ho inventato finora. Ho omesso ciò che sembrava non pertinente per questa domanda.

Grazie per il vostro aiuto!

L'instradamento

myModule.config([ 
    '$stateProvider', 
    '$urlRouterProvider', 
    '$locationProvider', 
    function($stateProvider, $urlRouterProvider, $locationProvider) { 

    $stateProvider 
     .state('post', { 
     url: '/posts/:hash_id/:slug', 
     templateUrl: '/js/app/views/post.html', 
     controller: 'PostCtrl', 
     resolve: { 
      postPromise: ['posts', function(posts, $stateParams){ 
      //returns undefined 
      console.log($stateParams); 
      return posts.getOne($stateParams); 
      }] 
     } 
     }) 
// etc 

Il servizio

myModule.factory('posts', ['$http', 'auth', function($http, auth){ 
    var o = { 
    posts: [], 
    post: {} 
    }; 
    o.getOne = function(params) { 
    // Returns undefined 
    console.log(params); 
    return $http.get('/api/v1/posts/' + params.hash_id).success(function(data){ 
     angular.copy(data, o.post); 
    }); 
    }; 
    return o; 
}]) 
+3

Non si include mai '$ stateParams' nelle dipendenze stringa' postPrimise'. – tymeJV

risposta

11

Hai mancato di aggiungere $stateParams dipendenza nel postPromise determinazione

Codice

postPromise: ['posts', '$stateParams', function(posts, $stateParams){ 
Problemi correlati