javascript - AngularJS ng-show 仅触发一次

标签 javascript angularjs

我有以下 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/

相关文章:

javascript - 阻止在文本区域/文本框中输入数字

javascript - $http 和工厂 - 这个模式是如何工作的?

javascript - 使用 AngularJS 创建目录的详细信息页面

javascript - Angular 4 中的 ReCaptchaModule 中的过期回调

javascript - 如何使用自定义排序顺序对 Angular js中的对象进行排序?

Javascript 无法将 Vars/Fn 传递给 .evaluate() 作用域 (NightmareJS)

javascript - 创建具有 3 列的动态表

javascript - 谷歌地图 api v3 + 标记聚类器 : centering map?

javascript - facebook 仅使用 javascript 登录网站

javascript - window.URL.createObjectURL(blob);在我的应用程序中未定义