2015-12-20 4 views
0

app.jsУгловой маршрут решительности возвращение неопределенного

angular 
     .module('yelp',['ngRoute']) 
      .config(config); 

    config.$inject=['$routeProvider','YelpServiceProvider']; 
    function config($routeProvider){ 

     $routeProvider 
      .when('/',{ 
      }) 
      .when('/restaurants',{ 
       templateUrl:'partials/restaurants.html', 
       controller:'RestaurantsController', 
       controllerAs:'rstrntsCtrl', 
       resolve:{ 
        restaurants:getRestaurants 
       } 
      }); 
    } 

    function getRestaurants(YelpService,$route){   
     YelpService.getRestaurants($route.current.params,function(response){ 
      console.log(response.data.businesses); **//Data printed here** 
      return response.data.businesses; 
     }); 
    } 

Controller.js

angular 
     .module('yelp') 
      .controller('RestaurantsController',RestaurantsController); 

    RestaurantsController.$inject=['restaurants']; 
    function RestaurantsController(restaurants){ 
     var rstrntsCtrl=this; 
     console.log(restaurants); **// got undefined here** 
    } 

функция Resolve делает HTTP вызов $ для извлечения данных. Затем он передается контроллеру. Я могу печатать данные в функции разрешения, но не могу передать это контроллеру (полученному undefined). может кто-то указать, где я пошло не так

+0

Вы должны вернуть 'YelpService' вместе с ответом, но в вашем коде вы возвращаете только ответ –

+0

Что вы подразумеваете под возвращением YelpService. не поняла. –

+0

Если я вернусь yelpService, то зачем использовать разрешение для записи в config, вместо этого я могу напрямую вставлять YelpService в этот контроллер –

ответ

0

Я думаю, что вы пропустите инъекции здесь:

RestaurantsController.$inject=['restaurants','YelpServiceProvider']; 
function RestaurantsController(restaurants,YelpServiceProvider) 

вам нужно вводить YelpServiceProvider в потребительскую (контроллер) не в конфигурации (если вы не совсем впрыснуть его в конфигурацию либо ...)

Смежные вопросы