Angular.ui警报未关闭

时间:2014-11-24 15:29:38

标签: javascript angularjs twitter-bootstrap scope alert

我使用Angular-ui,我想创建单一警报。但警报不会关闭

<div ng-controller="AlertCtrl">

     <alert type="danger" close>i'm alert</alert>

</div>

3 个答案:

答案 0 :(得分:8)

如果你把信息放在html中,你实际上甚至不需要控制器和功能:

<alert type="danger" close="bCloseAlert=1" ng-hide="bCloseAlert">i'm alert</alert>

答案 1 :(得分:2)

如果您只想显示一个提醒,则需要稍微改变一下方法。

您应该将一个函数从AlertCtrl的范围传递给&#34;关闭&#34;属性,像这样:

<alert type="{{alert.type}}" close="closeAlert()" ng-show="alert != null">
    {{alert.msg}}
</alert>

请注意,您的类型和警报文本现在引用警报对象。另请注意,我已添加ng-show属性,仅在警报对象不为空时才显示警告标记。

然后在您的控制器中实现该功能,并为其操作定义一个警告对象:

$scope.alert = { type: 'danger', msg: 'im alert' };

$scope.closeAlert = function() {
    $scope.alert = null;
}

答案 2 :(得分:1)

您可以在html中使用:

<div ng-show="hasError">
<alert ng-repeat="error in errors track by $index" type="danger" close="closeAlert($index)">{{error}}</alert>
</div>

并在您的控制器中:

$scope.hasError = false;
$scope.errors = [];

$scope.closeAlert = function (index) {
     $scope.errors.splice(index, 1);
};

然后,您可以关闭每个警报窗口。