0

$resource リクエストをコントローラー関数内に配置するときに問題が発生します。コントローラーから直接機能しますが、関数内では機能しません。

多分誰かが理由を知っていますか?ありがとう!

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();
        }
    }
4

1 に答える 1

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 スコープ) でそれらを探してから見つけます。

于 2013-09-01T14:32:44.847 に答える