如果没有从过滤器</select>返回的选项,如何禁用<select>

时间:2014-04-28 11:58:35

标签: angularjs select filter options disabled-control

我有这样的事情:

HTML

<select ng-model="dataValidatorNewResource.name" 
        ng-options="dv.name for dv in dataValidators | filter:filterDataValidator">
</select>

我想知道当过滤器根本没有返回任何选项时如何禁用整个选择。

我试过了:

JS

      $scope.enableAddDataValidatorForm = true;
      $scope.filterDataValidator = function(v) {
        var found = false;

        // Do the filtering stuff...

        $scope.enableAddDataValidatorForm = !found; 
        return !found;
      }

然后向ng-disabled="!enableAddDataValidatorForm"添加<select>,但效果不佳。此外,过滤器经常被调用,我想知道是否有更直接的方式来做我想要的。

1 个答案:

答案 0 :(得分:1)

当过滤器根本没有返回任何选项时,您想要禁用select。所以就这样做吧!

<select
    ng-model="dataValidatorNewResource.name" 
    ng-options="dv.name for dv in dataValidators | filter:filterDataValidator"
    ng-disabled="(dataValidators | filter:filterDataValidator).length === 0"
>
</select>