【发布时间】:2014-11-24 15:29:38
【问题描述】:
我正在使用 Angular-ui,我想创建单个警报。但警报不会关闭
<div ng-controller="AlertCtrl">
<alert type="danger" close>i'm alert</alert>
</div>
【问题讨论】:
标签: javascript angularjs twitter-bootstrap scope alert
我正在使用 Angular-ui,我想创建单个警报。但警报不会关闭
<div ng-controller="AlertCtrl">
<alert type="danger" close>i'm alert</alert>
</div>
【问题讨论】:
标签: javascript angularjs twitter-bootstrap scope alert
实际上,如果您将消息放在 html 中,您甚至不需要控制器和函数:
<alert type="danger" close="bCloseAlert=1" ng-hide="bCloseAlert">i'm alert</alert>
【讨论】:
如果您只想显示一个警报,则需要稍微改变您的方法。
您应该将一个函数从您的 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;
}
【讨论】:
你可以在你的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);
};
然后,您可以关闭每个警报窗口。
【讨论】: