【问题标题】:How to disable ion-card for Ionic 3?如何禁用 Ionic 3 的离子卡?
【发布时间】:2019-11-14 21:14:41
【问题描述】:

我想使用官方文档中列出的 disabled 属性禁用 ion-card。我尝试使用它,但没有任何反应,我仍然可以与卡交互。

我也试过使用 [disabled] 仍然没有禁用卡。

实现这一目标的正确方法是什么?

代码:

<ion-card (click)="openControllerPage('ERD')" disabled='true'>
          <ion-card-content>
            <div style="text-align: center;">
              <img src="assets/imgs/executive_dashboard.png" style="height: 30px;width: 30px">
              <h2 style="color: #8d8d8d"><b>Executive<br> Dashboard</b></h2>
            </div>
          </ion-card-content>
 </ion-card>

【问题讨论】:

    标签: angular typescript ionic-framework ionic3


    【解决方案1】:

    试试这个,

    <ion-card (click)="openControllerPage('ERD')" [disabled]="true">
              <ion-card-content>
                <div style="text-align: center;">
                  <img src="assets/imgs/executive_dashboard.png" style="height: 30px;width: 30px">
                  <h2 style="color: #8d8d8d"><b>Executive<br> Dashboard</b></h2>
                </div>
              </ion-card-content>
     </ion-card>
    

    【讨论】:

      【解决方案2】:

      page.html

          <ion-card disabled="true">
          <p>Text</p>
          </ion-card>
      

      //不禁用

      https://prnt.sc/p9olvz

      //禁用

      https://prnt.sc/p9om69

      查看带有/不带有禁用属性的代码

      【讨论】:

      • 它工作正常,我这边,你的代码也工作正常
      • 这很奇怪
      • 为什么我没有得到相同的结果?
      【解决方案3】:

      根据文档,disabled="true" 应该可以解决问题,但作为一种解决方法,您可以使用 user-select: none;

      .html

      <ion-card disabled="true">
        ...
      </ion-card>
      

      .sccs

      ion-card[disabled="true"] {
        user-select: none;
      }
      

      【讨论】:

        【解决方案4】:

        根据您的标签,您使用的是 ionic 3,那么您也在查看错误的文档。你应该看看version 3 documentation

        ionic 3 上的卡禁用功能不存在,但在 ionic 4 中引入。因此您需要以某种方式解决此问题,这可以通过编程方式完成,如答案 here。演示:STACKBLITZ

        也就是说,如果你想有条件地禁用卡,你可以使用一个布尔标志:

        (click)="isDisabled ? $event.stopPropagation() : openControllerPage('ERD'); isDisabled ? false : null"
        [class.isDisabled]="isDisabled"
        

        否则,如果应该始终禁用点击事件,请从卡片中完全删除它。

        ...但是无论您选择什么路径,您还可能需要在禁用时设置卡片样式,以便用户可以看到卡片实际上已被禁用。

        【讨论】:

        • 感谢您指出这一点。我无法打开您提供的链接
        • 做了一个更新来回答,不知道你是否有条件地要禁用卡,或者是否总是禁用卡。但我想无论如何你选择,你需要做一些卡片的样式来表明它被禁用,如果你在同一页面上启用了其他卡片。
        • 这行得通!我没有得到 css 部分。我想如何改变css? [class.isDisabled]="isDisabled" 是什么意思?
        • 它根据条件isDisabled向html元素添加disabled类。命名是一样的。然后,您可以使用您拥有的 css/scss/sass 文件中的 disabled 类,如果您想以某种方式设置卡片的样式,以便用户可以清楚地看到卡片已被禁用。
        • 我添加了 .isDisabled { 指针事件:无;不透明度:0.5; } 在 css 文件中,但它不是有条件地应用这个类,它一直应用这个天气 isDisabled 是 true 或 false
        猜你喜欢
        • 1970-01-01
        • 2018-04-16
        • 1970-01-01
        • 1970-01-01
        • 2019-08-16
        • 2018-11-27
        • 2020-09-28
        • 2018-07-26
        • 1970-01-01
        相关资源
        最近更新 更多