javascript - 如果数组大小大于 0,则只推送数据

标签 javascript arrays angularjs toggle

我正在切换我的 divng-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/

相关文章:

javascript - 使用 Colfusion/JavaScript/Other 跟踪网站使用情况

javascript - jQuery 总是选中一个复选框

c - C 数组的结构如何

java - 为什么子列表不适用于 List<Object>?

javascript - Angularjs:请求数据之前的条件?

javascript - Bootstrap Tab Control 为所有选项卡触发代码

javascript - 获取mysql中某个字段中表达式出现的次数

javascript - 在 AngularJS 中以本地化格式显示日期

c - 标记多个字符串 C

javascript - 有没有办法有条件地将数据从 `ng-repeat` 传递到其他元素?