Angular Bootstrap警报不会在超时时解除

时间:2014-12-17 21:36:45

标签: javascript angularjs twitter-bootstrap alerts

我正在尝试添加来自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;
    }
}]);

我设置了超时但不确定是什么问题。

2 个答案:

答案 0 :(得分:2)

您的$timeout永远不会被调用,因为您刚刚返回。

否则,一目了然,一切似乎都是正确的。

答案 1 :(得分:1)