ng-disabled仅在加载时进行评估

时间:2016-07-14 05:57:00

标签: jquery html angularjs

我在表单页面中有大约10个文本框。我有以下条件:

  1. 如果不允许登录用户
  2. ,则禁用文本框
  3. 如果允许,则禁用文本框,但在页面加载时加载值(从服务加载的值)
  4. 以下是我为禁用文本框而编写的条件:

    <input type="text" ng-model="Textbox" class="form-control" ng-disabled="(Textbox != null && !isNotPermitted) ||isNotPermitted" required>
    

    以下是问题: 在负载时,条件满足。 但是如果我有访问权限并且文本框中的值为空,那么它应该被启用并且正在启用。现在,如果我只输入一个值,再说1则再次评估表达式并禁用文本框。

    如何限制上述条件并仅在加载页面时禁用。

    先谢谢!!

1 个答案:

答案 0 :(得分:0)

您必须引入第三个变量。

在这里检查工作插件:

  <body ng-controller="MainCtrl">
   <input type="text" ng-model="Textbox" ng-blur="ngBlur = true" class="form-control" ng-disabled="(Textbox != null && ngBlur && !isNotPermitted) ||isNotPermitted" required>
  </body>

在控制器中:

app.controller('MainCtrl', function($scope) {
  $scope.isNotPermitted = false;

  if($scope.Textbox){
    $scope.ngBlur = true;
  }else{
    $scope.ngBlur = false;
  }

});

https://plnkr.co/edit/42csnMbxYkDk1CkNjSzJ?p=preview