web-dev-qa-db-ja.com

AngularJSコントローラーエラー-:$ http.getはコントローラーセクションの関数ではありません

var hsbc = angular.module('hsbc',['ngResource','ngRoute']);

hsbc.config(['$ routeProvider'、 '$ locationProvider'、function($ routeProvider、$ locationProvider){

//console.log('config part working'); 
$routeProvider
    .when('/login', {
        controller: 'hsbccontroller',
        templateUrl: 'modules/authentication/views/login.html',
        hideMenus: true
    })
    .when('/gloabltranfer', {
        controller: 'hsbccontroller',
        templateUrl: 'modules/home/views/gloabltranfer.html'
    })
    .when('/tranferReq', {
        controller: 'hsbccontroller',
        templateUrl: 'modules/home/views/TransferRquest.html'
    })
    .when('/reviewdetail', {
        controller: 'hsbccontroller',
        templateUrl: 'modules/home/views/Reviewdetails.html'
    })
    .when('/confirmdetail', {
        controller: 'hsbccontroller',
        templateUrl: 'modules/home/views/confirmdetails.html'
    })

    .when('/', {
        controller: 'hsbccontroller',
        templateUrl: 'modules/authentication/views/login.html'
    })

    .otherwise({ redirectTo: '/login' });

}])。controller( 'hsbccontroller'、['$ scope'、 '$ http'、 '$ resource'、function($ scope、$ resource、$ http){

    //console.log('controller part working'); 
$http.get('http://localhost:8080/1/').success(function(data) {
    alert(data);
        $scope.greeting = data;
    });

}]);

7
Rajesh Kumar

$ httpと$ resourceの位置を変更する必要があります。

AngleJSがどのように機能するか(このように定義されている場合)、angularは、関数の引数に提供される文字列を照合しようとするため、どの引数が何であるかがわかります。これは基本的に縮小の目的。これにより、以下に示すように変数が実際に変更されます。

.controller('hsbccontroller', ['$scope','$http','$resource', function(a,b,c){

    //console.log('controller part working'); 
a.get('http://localhost:8080/1/').success(function(data) {
    alert(data);
        $scope.greeting = data;
    });
}]);

したがって、ここで、angularjsはそれを知っています:

aは$ scopeを意味し、

bは$ http、

cは$ resourceです。

あなたの場合、実際には「$ resource.get」を試行していたため、エラーが発生しました。さらに読むには、指定されたドキュメントページの縮小に関する注記を確認してください: https://docs.angularjs.org/tutorial/step_05

28
Kop4lyf

私の意見では、それはエラーの場所です-.controller('hsbccontroller', ['$scope','$http','$resource', function($scope,$resource,$http)

正しい場所-.controller('hsbccontroller', ['$scope', '$http','$resource', function($scope, $http, $resource)

.controller('hsbccontroller', ['$scope', '$http','$resource', function($scope, $http, $resource){
    $http.get('http://localhost:8080/1/').success(function(data) {
    alert(data);
        $scope.greeting = data;
    });
}

私はあなたと同じ問題を抱えていましたが、正しい場所を使用することで解決できます。

0
JackDan9