【问题标题】:set attribute disabled with angular ionic 3使用 angular ionic 3 禁用设置属性
【发布时间】:2018-08-13 03:25:27
【问题描述】:

我的 main.ts 中有一个对象,它可以被初始化。在这种情况下,我必须禁用 html 中的文本区域。我试过这个:

ng-attr-disabled="!myObj";
ng-attr-disabled="{myObj!= null}";

与直接ng-disabled相同。

我也试过这个:[disabled]="{'disabled':myObj!=null}"

但不幸的是,这些都没有奏效。

HTML:

<textarea name="message" id="txtMessage" formControlName="message" cols="30" rows="10"></textarea>

TS:

  myObj;
  constructor(...) {
    if(localStorage.getItem('message') && localStorage.getItem('message') != null){
      this.myObj = localStorage.getItem('message');
    }
  }

知道我可以尝试什么吗?

提前致谢

【问题讨论】:

    标签: html angular typescript ionic-framework ionic3


    【解决方案1】:

    我会为此创建一个单独的布尔变量:

    isDisabled = false;
    constructor(...) {
      if(localStorage.getItem('message') && localStorage.getItem('message') != null){
        this.myObj = localStorage.getItem('message');
        this.isDisabled = true;
      }
    }
    ...
    ...
    <textarea [disabled]="isDisabled" name="message" id="txtMessage" formControlName="message" cols="30" rows="10"></textarea>
    

    【讨论】:

      【解决方案2】:

      你可以试试这个:

      [attr.disabled]="!myObj"
      

      【讨论】:

      • 工作,但它设置disabled="true"disabled="false" 以防myObj 存在,是否可以只设置禁用为真但不能禁用为假?
      • 我不知道你的意思,请你解释一下。您可以使用所需的每个变量而不是 !myObj 并在 ts 文件中处理它的值。
      • 这只是因为我使用了相同的选择/选项来默认选择其中一个选项。我试过类似:[attr.selected]="myObj.option == 'someString' ",但它输出selected="true"selected="false"selected="false" 无法被 html5 识别,所以它没有按我的意愿工作。无论如何,我通过在选择标签内使用ng-model="myObj.option" 解决了它,它会自动选择与给定对象值匹配的选项。
      猜你喜欢
      • 1970-01-01
      • 2020-10-14
      • 2021-08-28
      • 2018-01-11
      • 1970-01-01
      • 2017-07-08
      • 1970-01-01
      • 2018-04-13
      • 1970-01-01
      相关资源
      最近更新 更多