我使用Angular-ui,我想创建单一警报。但警报不会关闭
<div ng-controller="AlertCtrl">
<alert type="danger" close>i'm alert</alert>
</div>
答案 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);
};
然后,您可以关闭每个警报窗口。