2014-11-24 114 views
2

我使用的是Angular-ui,我想创建单个警报。但警报将不会关闭Angular.ui警报不关闭

<div ng-controller="AlertCtrl"> 

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

</div> 

回答

2

如果您只想显示一个警报,您需要稍微改变您的方法。

你应该通过从AlertCtrl的范围功能“关闭”属性,像这样:

<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; 
} 
7

其实你甚至不需要一个控制器和一个功能,如果你把你的邮件中HTML:

<alert type="danger" close="bCloseAlert=1" ng-hide="bCloseAlert">i'm alert</alert> 
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); 
}; 

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