2014-11-24 84 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); 
}; 

然後,您可以關閉每個警報窗口。