【问题标题】:Angular.ui alert doesn't closeAngular.ui 警报没有关闭
【发布时间】: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


    【解决方案1】:

    实际上,如果您将消息放在 html 中,您甚至不需要控制器和函数:

    <alert type="danger" close="bCloseAlert=1" ng-hide="bCloseAlert">i'm alert</alert>
    

    【讨论】:

      【解决方案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;
      }
      

      【讨论】:

        【解决方案3】:

        你可以在你的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);
        };
        

        然后,您可以关闭每个警报窗口。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多