我有以下 HTML
<div class="alert alert-danger col-sm-10 col-sm-offset-1" ng-show="showErrorMessage">
<button data-dismiss="alert" class="close" ng-click="closeErrorMessage()">
×
</button>
<i class="fa fa-check-circle"></i>
<strong>Error</strong> The following errors have occurred:
<div ng-repeat="error in createResp.Errors">{{error}}</div>
</div>
在我的 JavaScript 中包含以下内容
$scope.showErrorMessage = false;
$scope.search = function () {
var createOrderResp = myData.create($scope.request);
createOrderResp.$promise.then(function (r) {
$scope.createResp = r;
if ($scope.createResp.Errors.length > 0) {
$scope.showErrorMessage = true;
}
}, function (r) {
handleResourceError(r);
});
};
$scope.closeErrorMessage = function () {
$scope.showErrorMessage = false;
};
所以第一次一切都进展顺利。如果响应包含错误,则显示 div。但是,单击关闭按钮 closeErrorMessage()
并再次执行后,即使 showErrorMessage 标志变为 true,错误警报也不会显示。
最佳答案
问题出在data-dismiss
上。它将删除整个 alert
block 。因此,使用范围内的变量触发 ng-show
不会有帮助,因为不会有需要触发的 html 部分。
关于javascript - AngularJS ng-show 仅触发一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24519693/