我正在尝试添加来自Angular Bootstrap的警报以及超时解除本身。然而,它不会解雇自己。这是代码:
angular.module('ui.services').service('AlertService', [
function () {
var alerts = [];
this.add = function(type, msg){
var self = this;
return alerts.push({
type: type,
msg: msg,
close: function() {
return self.closeAlert(this);
}
});
$timeout(function(){
self.closeAlert(this);
}, 3000);
},
this.closeAlert = function(alert) {
return this.closeAlertIdx(alerts.indexOf(alert));
},
this.closeAlertIdx = function(index) {
return alerts.splice(index, 1);
},
this.alertData = function() {
return alerts;
}
}]);
我设置了超时但不确定是什么问题。
答案 0 :(得分:2)
您的$timeout
永远不会被调用,因为您刚刚返回。
否则,一目了然,一切似乎都是正确的。
答案 1 :(得分:1)
https://github.com/angular-ui/bootstrap/blob/master/src/alert/alert.js#L22-L31
<alert dismiss-on-timeout='2000'>...</alert>