#javascript #angularjs #controller
#javascript #angularjs #контроллер
Вопрос:
Я использую AngularJS. Следующий код находится в контроллере. Я пытаюсь заполнить $scope.highlighted объектами, для свойства highlight установлено значение true. Мне нужно, чтобы $scope.highlighted был очищен при закрытии диалогового окна. По какой-то причине $scope.выделенный в моей функции closeDialog() — это не тот массив, который я распространяю в 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();
}
};
Комментарии:
1. Почему вы говорите, что это не тот же массив? Что консоль показывает после
console.log($scope.highlighted);
вcloseDialog
функции? Можете ли вы создать плунжер?2. @Jerrad Он показывает пустой массив
3. Трудно диагностировать, не видя больше кода.