我正在切换我的 div
在 ng-click
使用 isVisible
.我遇到的问题是每次单击按钮时,它都会运行 $scope.Objectlist.push(data);
.我只想在第一次点击时推送它,或者仅在数组大小小于或等于 0 时推送。
$scope.objectlist = [];
$scope.isVisible = false;
$scope.pushData= function(id) {
$http.get("some variables being passed on here").success(function(data, status, headers, config){
$scope.objectlist.push(data);
}).error(function(data, status, headers, config){
alert("Error");
});
$scope.isVisible = ! $scope.isVisible;
};
我试过使用 if(Objectlist.length <= 0)
但它为我的数组返回 null,这意味着没有推送任何内容。
最佳答案
我认为您不想为此使用计数器或 bool 变量。想象一下,您将计数器设置为 1 或将 bool 变量设置为“true”,而稍后您将添加的其他一些函数会从数组中删除所有元素。然后你有一个需要推送的空数组,但计数器说它不是 0, bool 变量说一些东西已经被推送到数组。这显然是错误的,所以我认为你应该像这样直接检查数组长度。
$scope.Objectlist = [];
$scope.isVisible = false;
$scope.pushData= function(id) {
$http.get("some variables being passed on here").success(function(data, status, headers, config) {
if ($scope.Objectlist.length === 0) {
$scope.Objectlist.push(data); /* Push only if array is empty */
}
}).error(function(data, status, headers, config){
alert("Error");
});
$scope.isVisible = ! $scope.isVisible;
};
关于javascript - 如果数组大小大于 0,则只推送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30927291/