我是angularjs的新手。我尝试向我的Web-Api 2项目发送获取请求。但我不明白为什么它不断调用我的方法。我正在关注AngularJs $http。
这是我的错误:
我的代码是:
<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>
答案 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()方法。