当ng-hide为真时,清除输入ng模型AngularJS

时间:2016-02-12 15:44:36

标签: angularjs

我尝试以<input>为真的方式设置此ng-hideng-model中的任何内容都会重置。

<input type="text" class="form-control" ng-model="account.AccountName" ng-hide="account.AccountStatus == 'Terminated'">

因此,会有一个包含ActiveTerminated绑定到ng-model="account.AccountStatus"的下拉列表。如果是Active,则字段帐户名称会在那里显示文字。我希望当我切换到Terminated时,隐藏该输入字段并将account.AccountName设置为&#34;&#34;。

3 个答案:

答案 0 :(得分:3)

如果AccountStatus等于&#39;已终止&#39>,您可以在控制器中使用[ng-change]属性并定义函数来处理更改事件并重置AccountName。 例如:

    <input type="text" class="form-control" ng-model="account.AccountName" ng-hide="account.AccountStatus == 'Terminated'">
    <select ng-change="selectChange()" name="selectState" ng-model="account.AccountStatus">
      <option value="Active">Active</option>
      <option value="Terminated">Terminated</option>
    </select>
    <script>
      angular.module('examleModule', []).controller('exampleController',['$scope', function($scope) {
         $scope.account = {
            AccountStatus: 'Active',
            AccountName: ''
         };

     $scope.selectChange= function() {
        // Reset AccountName if AccountStatus=='Terminated'
        if($scope.account.AccountStatus=='Terminated')
             $scope.account.AccountName = '';      
     };
   }]);
   </script>

答案 1 :(得分:2)

<select ng-model="account.AccountStatus" 
   ng-change="resetAccountName(account.AccountStatus == 'Terminated')">
     .......
     options goes here
     .......
</select>

然后在你的控制器中创建像此一样的函数resetAccountName

 $scope.resetAccountName = function(flag){
   if(flag == true){
      $scope.account.AccountName = "";
   }
 }

答案 2 :(得分:2)

您可以将AccountStatus变量绑定到清除AccountName变量的函数,例如在你的控制器中:

$scope.$watch('AccountStatus', function(status) {
    if (status == 'Terminated')
        $scope.AccountName = null;
})