在JavaScript中删除多行

时间:2015-12-28 17:21:48

标签: javascript html ubuntu

我的程序中有'通知应用'。在应用程序中有一个“通知”部分。每个通知都有一个选项,可以删除该行的删除按钮。 “通知”部分也有一个清晰的按钮。我想清除按钮,删除“通知”部分中的所有通知。但是我在这方面遇到了麻烦。

CONTROLLER

(function () {
'use strict';

angular
 .module('notifications')
 .controller('NotificationsCtrl', NotificationsCtrl);

function NotificationsCtrl($scope, $state, SecService, Service, RecService) {
  var vm = this;
  vm.ctrlName = 'NotificationsCtrl';

  $scope.showAppsMenu = false;

  $scope.appList = {};

  $scope.dismissNotification = function(notification) {
    EcosystemService.dismissNotification(notification.id).then(
      function (response) {
        delete     $scope.appList[notification.appId].notifications[notification.id];
      });
  };

  $scope.dismissAppNotifications = function(app) {
var notifications = app.notifications;
for (var i = 0; i < notifications.length; i++) {
  EcosystemService.dismissNotification(notifications[i].id).then(
    function(index) {
        return function (response) {
          delete app.notifications[index];
        }
    }(i));
}
};

我需要在$scope.dismissAppNotifications进行更改。我只是对我需要添加的东西感到难过。 “警报”尚未被清除。我添加了Service的使用位置。也许我还需要在这里添加一些东西?

1 个答案:

答案 0 :(得分:3)

如果我理解正确 - 你想删除一个应用程序中的所有通知 - 所以不需要迭代appList。迭代一个应用程序的通知:

$scope.dismissAppNotifications = function(app) {
    var notifications = app.notifications;
    for (var id in notifications) {
      // may be reasonable to add checking for only own properties
      EcosystemService.dismissNotification(notifications[id].id).then(
        function(notificationId) { // outer function needed because of the way scopes and closures works in js
            return function (response) {
              delete app.notifications[notificationId];
            }
        }(id));
    }
};
如果key和id属性相同,则可以使用notifications[id].id替换

id