簡體   English   中英

AngularJS ng-show僅觸發一次

[英]AngularJS ng-show only triggering once

我有以下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塊。 因此,使用范圍內的變量觸發ng-show將無濟於事,因為將沒有html部分,因此需要進行觸發。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM