2013-09-01 1 views
0

Controller 함수 내에 $ resource request를 넣을 때 문제가 있습니다. 컨트롤러에서 직접 작동하지만 함수 내부에는 포함되지 않습니다.

누군가가 그 이유를 알고 있을까요? 감사!

angular.module('Vote', ['ngResource']); 
    function VotesController($scope, $resource) { 
     $scope.simple = $resource('url'); // works 
     $scope.some_item = $scope.simple.get(); 
     $scope.upvoteQuestion = function($scope, $resource) { 
      $scope.simple = $resource('url'); // gets error: undefined 
      $scope.some_item = $scope.simple.get(); 
     } 
    } 

답변

1

당신이 당신의 기능 upvoteQuestion를 정의하는 방법은 2 개 인자 ($scope$resource)을 소요 것을 의미한다. 다음을 제거해야합니다.

angular.module('Vote', ['ngResource']); 
    function VotesController($scope, $resource) { 
     $scope.simple = $resource('url'); // works 
     $scope.some_item = $scope.simple.get(); 
     $scope.upvoteQuestion = function() { 
      $scope.simple = $resource('url'); // gets error: undefined 
      $scope.some_item = $scope.simple.get(); 
     }; 
    } 

범위 문제입니다.
이러한 인수를 사용하여 함수를 정의했지만 함수를 호출 할 때 실제로 제공하지 않으면 undefined으로 설정되므로 그 오류가 발생합니다.
인수없이 함수를 선언하면 함수에 설정되어 있지 않으므로 상위 범위 (Controller 범위)에서 함수를 찾은 다음 함수를 찾습니다.

+0

오, 설명 주셔서 감사합니다! 그것은 작동합니다! – Gediminas