15

$scope と $http をコントローラーに注入しようとしたときに、以前に同様の質問をしました Angular.js コントローラーで undefined のメソッド 'jsonp' を呼び出せません。今、コードをコントローラー内の関数に移動することで、そのコードを少しリファクタリングしようとしています。同様の問題が発生しており、Angular での依存性注入のメカニズムを把握できないようです。以下は私の新しいコードです。$scope と $http は両方とも未定義です。私がやろうとしているのは、didSelectLanguage() が起動したときに http リクエストを作成し、結果のデータを親コントローラーの $scope の「image」変数に割り当てることです。この例で依存性注入がどのように機能するかについて誰かが教えてくれますか?

angular.module('myApp.controllers', []).

  controller('ImagesCtrl', ['$scope', '$http', function ($scope, $http) {



        $scope.didSelectLanguage=function($scope, $http) {
            console.log($scope);
            $http.jsonp('http://localhost:3000/image?quantity=1&language='+this.language+'&Flag=&callback=JSON_CALLBACK')
            .success(function(data){
            $scope.image = data;
            });

        }

  }])
4

2 に答える 2

1

Michelle Tilley のコメントと記事の助けを借りて、次のように問題を解決しました。ただし、他の誰かが答えるまで、または付随する説明を書くのに十分な理解が得られるまで、質問を開いたままにします.

controller('ImagesCtrl', ['$scope', '$http', '$injector', function ($scope, $http, $injector) {

    $scope.didSelectLanguage=function() {

            $http.jsonp('http://localhost:3000/image?quantity=1&language='+this.language+'&Flag=&callback=JSON_CALLBACK')
            .success(function(data){
            $scope.$parent.image = data;
            });

        }

  }])
于 2013-07-04T21:55:38.017 に答える