我的程序中有'通知应用'。在应用程序中有一个“通知”部分。每个通知都有一个选项,可以删除该行的删除按钮。 “通知”部分也有一个清晰的按钮。我想清除按钮,删除“通知”部分中的所有通知。但是我在这方面遇到了麻烦。
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
的使用位置。也许我还需要在这里添加一些东西?
答案 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
。