【问题标题】:How to add a function to a disabled directive - Angular 2如何将功能添加到禁用的指令 - Angular 2
【发布时间】:2016-02-20 12:21:49
【问题描述】:

我想要实现的是在它匹配下面的if条件后启用提交按钮,但在满足条件后按钮似乎没有启用。

    <button [disabled]="!isFullfilled(m.value, n.value)" type="submit" class="ui button">Submit</button>


  isFullfilled(m: number, n: number) {
    if (
          m === this.restrict_arr.length
          && m === this.xinitial_arr.length
          && m === this.lift_arr.length
          && n === this.param_arr.length
          && n === this.system_arr.length
       ) {
         return true;
       }

       return false;
  }

这是一个完整的例子plunker

【问题讨论】:

    标签: javascript angular


    【解决方案1】:

    改变

    return false;
    

    到

    return null;
    

    在null 上删除布尔属性,而不是在false 上。 false 导致disabled="false"

    【讨论】:

    • 我这样做了,但似乎我必须在某个地方调用我的函数?或者可以自动检查它吗?我的意思是 isFullfilled 函数不会在任何地方调用,除非在 disabled 指令上。更改检测会调用该功能还是我必须手动执行?
    • 更改检测应该重复调用它。
    • hmm 那么发生了什么,因为它不起作用。按钮保持禁用状态。
    • 我想您需要将null 和true 之间的区别移到绑定表达式中。 !null(函数调用返回 null)再次返回 true。请改用[disabled]="!isFullfilled(m.value, n.value) ? true : null "。 plunker 永远不会返回 false,即使所有字段都已填满。获取false的条件是什么?
    • 找到了。三元组等于导致问题的位置。
    猜你喜欢
    • 2017-06-02
    • 1970-01-01
    • 2017-01-14
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 2016-05-20
    • 1970-01-01
    相关资源
    最近更新 更多