我在处理显示警报消息的多个超时时遇到问题。在我的应用程序中,我在创建任务,播放任务,暂停任务和删除任务时收到几条警报消息。我使用$ timeout()将所有警报的超时设置为5000。
这是创建任务::
的代码$scope.create = function () {
console.log('Taskkkkkkkkkk Title create function is called : ');
for (var i = 0; i < $scope.tasks.length; i++) {
if ($scope.tasks[i].title === this.title) {
$scope.duplicateTitle = true;
return;
}
}
var task = new Tasks({
'title': this.title,
'description': this.description,
'duration': 0,
'lastStart': '',
'archive': false,
'active': true
});
console.log('Taskkkkkkkkkk Title : ' + task.title);
if (task.title) {
task.$save(function (response) {
$scope.alerts.push({
type: 'success',
msg: 'Task have been Added!!' + '   <button type="button" class="close" data-dismiss="alert" ng-click="closeAlert()">×</button>'
});
$scope.closeAlert = function (index) {
$scope.alerts.splice(index, 1);
};
$timeout(function () {
$scope.alerts.splice($scope.alerts.indexOf(alert), 1);
}, 5000);
$scope.tasks.unshift(response);
//$scope.tasks = Tasks.query();
$scope.title = '';
$scope.description = '';
$state.go('listTasks');
}, function (errorResponse) {
$scope.error = errorResponse.data.message;
});
} else {
var message = 'Title cannot be blank';
$scope.error = message;
}
};
但是当我在5秒内单击多个任务时,最后一个任务警报消息将消失。但不是第一个,意味着它正在跟随堆栈顺序,即FIFO原则。我正在控制器中编写警报消息。
我希望任务按照它们出现的顺序消失。任何建议对我都会更有帮助。
答案 0 :(得分:0)
在超时中我刚刚添加了拼接功能的索引值。
$timeout(function () {
$scope.alerts.splice(index, 1);
}, 5000);
现在工作正常......