如何在Angularjs中为data-ng-disabled编写条件

时间:2017-02-27 19:10:59

标签: angularjs

如何在Angularjs中编写禁用数据-ng的条件:

只应在以下情况下启用该按钮:

1:应选择插槽并检查所选插槽边距是否<= 35且原因!=''

2:应选择插槽并检查边距是否> 35

我尝试过的代码但不起作用:

data-ng-disabled="!selAppt.selected && (selAppt.selected.margin >= 35 || ReservedAssessorDetails != '')"

1 个答案:

答案 0 :(得分:4)

它似乎失败的部分原因是!selAppt.selectedselAppt.selected.margin在一起使用时永远不会返回true。因此,只有当您没有选择约会时,您的条件才会呈现真实 AND 保留的评估者详细信息不是 falsy 。所以你需要先修复那个逻辑。

其次,我会为此写一个过滤器:

.filter( 'hasSelected', [
    function(){
        return function(selAppt, ReservedAssesorDetail){
            return conditional-based-on-logic
        }
    }
])

然后你这样实现:

<elem ng-disabled="selAppt | hasSelected : ReservedAssesorDetail"/>

我提倡对内联解决方案进行过滤的原因是,如果由于某种原因条件逻辑发生变化,您只需要在过滤器中更改一次,而不是多次将其内联编写。