我是AngularJS的新手,这让我疯了好几天。救命!!!我已经将问题简化为尽可能简单的代码片段。我已经在Controller中设置了一个名为indexArray的数组,我想通过函数pushIndex()从HTML推送值到它。问题是push函数为数组添加了十个相同的元素。当我在推送后使用{{indexArray}}语句列出数组时,它看起来像这样:
[4,5,6,7,9,9,9,9,9,9,9,9,9,9]
我只想要一个" 9"推了一下,它增加了十个。
字符串,引号等也会发生同样的事情。
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
var app = angular.module('myDataApp',[]);
app.controller('myDataController',function($scope, $http){
$scope.indexArray=[4,5,6,7];
$scope.pushIndex=function(num){
$scope.indexArray.push(num);
};
});
</script>
</head>
<body>
<div ng-app="myDataApp" ng-controller="myDataController">
{{ pushIndex(9) }}
{{ indexArray }}
</div>
</body>
</html>
如果解决方案很简单,或者之前已经提出过这个问题,请提前抱歉。谢谢! -UDM
答案 0 :(得分:3)
调用类似{{ pushIndex(9) }}
的函数将无限运行摘要循环。
这对你有用
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
var app = angular.module('myDataApp',[]);
app.controller('myDataController',function($scope, $http){
$scope.indexArray=[4,5,6,7];
$scope.pushIndex=function(num){
$scope.indexArray.push(num);
};
});
</script>
</head>
<body>
<div ng-app="myDataApp" ng-controller="myDataController">
<span ng-init="result=pushIndex(9)">{{result}}</span>
{{ indexArray }}
</div>
</body>
</html>
&#13;