Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript和AngularJS关闭对话框时清空数组_Javascript_Angularjs_Controller - Fatal编程技术网

使用Javascript和AngularJS关闭对话框时清空数组

使用Javascript和AngularJS关闭对话框时清空数组,javascript,angularjs,controller,Javascript,Angularjs,Controller,我用的是AngularJS。以下代码位于控制器中。我试图用highlight属性设置为true的对象填充$scope.highlighted。我需要$scope.highlighted在对话框关闭时清空。出于某种原因,my closeDialog函数中突出显示的$scope.highlighted与我在getHighlighted中传播的数组不同。我不知道这是AngularJS范围问题、JavaScript引用问题还是其他问题 $scope.highlighted = [

我用的是AngularJS。以下代码位于控制器中。我试图用highlight属性设置为true的对象填充$scope.highlighted。我需要$scope.highlighted在对话框关闭时清空。出于某种原因,my closeDialog函数中突出显示的$scope.highlighted与我在getHighlighted中传播的数组不同。我不知道这是AngularJS范围问题、JavaScript引用问题还是其他问题

            $scope.highlighted = [];

            $scope.closeDialog = function () {
                console.log("closeDialog");
                // Hide the dialog
                $('#shared-list .modal').modal('hide');
                // Clean up data for next shared list
                console.log($scope.highlighted);
                while ($scope.highlighted.length > 0) {
                    console.log("pop");
                    $scope.highlighted.pop();
                }
                console.log($scope.highlighted);
            };

            $scope.getHighlighted = function (root) {
                var x, y;
                for (x in root.CurrentItems) {
                    console.log(root.CurrentItems[x].ItemLabel + ": " + root.CurrentItems[x].highlight);
                    if (root.CurrentItems[x].highlight == true) {
                        console.log("push");
                        $scope.highlighted.push(root.CurrentItems[x]);
                    }
                }
                for (y in root.Folders) {
                    console.log(root.Folders[y].FolderLabel + ": " + root.Folders[y].highlight);
                    if (root.Folders[y].highlight == true) {
                        console.log("push");
                        $scope.highlighted.push(root.Folders[y]);
                    }
                    $scope.getHighlighted(root.Folders[y]);
                }
            };

            $scope.showCreateSharedList = function () {
                console.log("showShared");
                console.log($scope.highlighted);
                $scope.getHighlighted($scope.favorites);
                console.log($scope.highlighted);
                if ($scope.highlighted.length == 0) {
                    alert("Please select one or more items and/or folders to share.");
                }
                else {
                    $("#shared-list .modal").modal();
                }
            };                

为什么说它不是同一个数组?控制台在console.log$scope.highlighted之后显示什么;在closeDialog函数中?你能制造一个plunker吗?@Jerrad它显示了一个空阵列,可以在没有看到更多代码的情况下进行诊断。