簡體   English   中英

為什么在調用函數時多次打印 - AngularJS

[英]Why printing multiple times on calling a function - AngularJS

我正在從控制器范圍調用一個函數,但在控制台中,這些值被打印了 3 次。 為什么會這樣?

來源

<!DOCTYPE html>
<html ng-app="myModule" >
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
</head>
<body ng-init="priceList='promo03,promo04'">
<div ng-controller="PricingController" >
    {{splitArray()}}
</div>
<script>
var myModule = angular.module('myModule',[]);

myModule.controller('PricingController',['$scope', function($scope){
    $scope.priceString = $scope.priceList;
    $scope.array = [];
    $scope.splitArray= function(){
        console.log($scope.priceString);
        $scope.array = $scope.priceString.split(",");
        console.log($scope.array[0]);
        console.log($scope.array[1]);
    };
}]);
</script>
</body>
</html>

控制台輸出

promo03,promo04 
promo03
promo04 
promo03,promo04 
promo03 
promo04 
promo03,promo04 
promo03
promo04 

預期產出

promo03,promo04 
promo03
promo04 

Angular 的每個摘要循環都會調用它。 如果您保持程序運行,您將擁有更多日志。

為了防止它,將您的函數調用到您的控制器中,而不是調用到您的 html 中的綁定值中。

例如 :

$scope.splitArray= function(){
        console.log($scope.priceString);
        $scope.array = $scope.priceString.split(",");
        console.log($scope.array[0]);
        console.log($scope.array[1]);
    };
$scope.splitArray();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM