2014-08-27 3 views
0

나는 각도에 정말 새로운 오전 및 자습서 등의 숫자를 읽고 된 다음과 같은 문제가 있습니다

검색 module.js

var Search = angular.module('SearchApp',["ngCookies","ngRoute"]); 

Search.run(function ($http, $cookies) { 
    $http.defaults.headers.common['X-CSRFToken'] = $cookies['csrftoken']; 
}); 

Search.config(function($routeProvider){ 
    $routeProvider 
     .when('/', { 
      controller:'searchCtrl', 
      resolve: { 
       inv_items: function (InventoryService){ 
        return InventoryService.get('red'); 
       } 
      } 
     }) 
     .otherwise({ 
      redirectTo: '/' 
     }) 
}); 

데이터 service.js

Search.factory('InventoryService', function ($http, $q) { 

    var api_url = "api/inventory/"; 

    return { 

     get: function (inventory) { 
      var url = api_url + inventory; 
      var defer = $q.defer(); 
      $http({method: 'GET', url: url}). 
       success(function (data, status, headers, config){ 
        defer.resolver(data); 
       }) 
       .error(function (data,status, headers, config){ 
        defer.reject(status); 
       }); 
      return defer.promise; 
     } 
    } 
}); 

검색 controller.js

Search.controller('searchCtrl', function($scope){ 

    $scope.selected = 'have'; 

    $scope.setSection = function(section){ 
     $scope.selected = section; 
    }; 

    $scope.isSelected = function(section){ 
     return $scope.selected == section; 
    }; 

}); 

이전에 언급 한 것처럼 나는 어제 픽업 한 각도가 정말 새롭습니다. 기본적으로 필자가 작성한 내용에서 URL이 '/'이면 서비스가 시작되고 컨트롤러가 호출된다는 것을 이해합니다. 내가 알고 싶은 것은 컨트롤러에서 inv_items를 사용할 수없는 이유입니다. 다음과 같은 메시지가 나타납니다. error.

inv_items가 포함될 일종의 글로벌를 컨트롤러에 전달해야합니까? 아니면 중요한 일부 지식이 누락 되었습니까?

감사합니다.

답변

0

'inv_items'해결 변수가 'searchCtrl'범위에 자동으로 추가되지 않습니다.

Search.controller('searchCtrl', function($scope, inv_items){ //Add this 
    $scope.inv_items = inv_items; //And this 
    $scope.selected = 'have'; 

    $scope.setSection = function(section){ 
     $scope.selected = section; 
    }; 

    $scope.isSelected = function(section){ 
     return $scope.selected == section; 
    }; 
}); 

나머지 코드가 작동한다고 했으므로 'inv_items'를 해당 범위에서 사용할 수 있습니다.

+0

안녕하세요. 그래서 처음에 코드에서 시도해 보았습니다. 위에서 링크 된 오류가 발생했습니다. 코드의 다른 부분에 오류가 있음을 의미합니까? 컨트롤러에서 inv_items를 생략하면 콘솔에서 발생한 오류가 없습니다. – Deep

관련 문제