タイトルがすべてを物語っています。コントローラで関数を呼び出していますが、どういうわけか、クライアントは何度も何度もリクエストを送信し続けています。関数は次のとおりです。
vm.user = null;
vm.getUser=getUser;
function getUser(id){
$http({method:'GET', url: 'http://localhost:8080/api/user/'+id}).
then(function(response){
$scope.status = response.status;
vm.user = response.data;
return vm.user.login;
}, function(response){
$scope.status = response.status;
vm.user = response.data || 'Request failed';
});
}
そして、これがhtmlファイルの呼び出しです
<span class="reviewUnitText">{{vm.getUser(vm.review.userId)}}</span>
(この関数は、ページの読み込み時に1回だけ呼び出されます。ng-repeatはありません)なぜ何度も実行されるのですか?
を使用しng-init
ます。内部で関数呼び出しを行うと{{}}
、Angularダイジェストサイクルが実行されるたびに、この関数が実行されます。そのため、複数のhttpリクエスト呼び出しが行われます。
を使用するng-init
と、関数は1回だけ呼び出されます。したがって、htmlからユーザー変数を割り当てることができます。
<span ng-init="vm.getUser(vm.review.userId)" class="reviewUnitText">{{vm.user.login}}</span>
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加