为什么Angularjs在发送get请求时会不断调用方法?

时间:2014-03-02 18:45:52

标签: javascript ajax angularjs http asp.net-web-api

我是angularjs的新手。我尝试向我的Web-Api 2项目发送获取请求。但我不明白为什么它不断调用我的方法。我正在关注AngularJs $http

这是我的错误: enter image description here

我的代码是:

<script src="~/Scripts/jquery-2.1.0.js"></script>
<script src="~/Scripts/angular.min.js"></script>
<script>
    function loginCtrl($scope, $http) {
        $scope.name = function () {
            console.log("Add Call");
            $http({ method: 'GET', url: 'http://localhost:15229/api/values' }).
            success(function (data, status, headers, config) {
                    console.log(data);
                }).
           error(function (data, status, headers, config) {
               console.log(data);
           });
        };
    }
</script>

<div lang="en" ng-app="" ng-controller="loginCtrl">
    {{name()}}
</div>

1 个答案:

答案 0 :(得分:1)

您没有为我提供足够的上下文信息,以确保您想要实现的目标。特别是我不知道是什么让你的api回归。所以我假设它返回你想要显示的值。您的代码看起来应该更像这样:

function loginCtrl($scope, $http) { $scope.init = function () { console.log("Add Call"); $http({ method: 'GET', url: 'http://localhost:15229/api/values' }). success(function (data, status, headers, config) { console.log(data); $scope.name = data; }). error(function (data, status, headers, config) { console.log(data); }); }; }

http://localhost:15229/api/values

<div lang="en" ng-app="" ng-controller="loginCtrl" ng-init="init()">
    {{name}}
</div>

您应该在成功回调中影响$ scope.name。

name应该是变量,而不是函数。

ng-init属性定义了在实例化控制器时要调用的方法。在这种情况下,它将调用控制器的init()方法。