2016-05-25 1 views
1

こんにちは私は小さな問題があります。 私は時にはフォームで表示する必要がある入力バーがあります。 誰かがデータを入れてから非表示にしてsendを押すと、データが送信されるのではないかと心配です。だから私はそれが隠されるたびに入力をリセットしたい。ng-showがfalseのときにng-modelをクリアするAngularJS

ng-changeは、私の書き込みを許可しないので、良い考えではありません。

<div class="form-group" ng-show="isItOne=='1' || isItTwo=='2'"> 
    <label class="col-md-1">someName</label> 
    <div class="col-md-4"> 
    <input class="form-control" type="text" name="someOtherName" ng-model="nameModel" ng-change="clearWhenChanged()"> 
    </div> 
</div> 

と、これは

$scope.clearWhenChanged = function() { 
    $scope.nameModel = ""; 
}; 

答えて

1

は、show条件を取り出し、可視性とモデル値を制御するために使用します。

$scope.showHideField = function(){ 
    if(isItOne=='1' || isItTwo=='2'){ 
     return true; 
    } 
    $scope.nameModel= ""; 
} 

は、あなたのdivにそれを呼び出す: <div class="form-group" ng-show="showHideField()">

これはまた、あなたがフィールドの値をクリアするかどうかを決定するか、できないに基づいてフラグを渡すための柔軟性を提供します。.. :)

-1

これは条件がtrueの場合にのみタグをレンダリングします、タグ属性ng-if="your condition"を使用する機能です。それ以外の場合は、DOMからの入力全体が削除されます。

0

isItOne変数を設定する代わりに関数を呼び出すことができます。その関数では、変数を1または2に、にモデル値をクリアすることができます。

HTML

<div class="form-group" ng-show="show()"> 
    <label class="col-md-1">someName</label> 
    <div class="col-md-4"> 
     <input class="form-control" type="text" name="someOtherName" ng-model="nameModel" ng-change="clearWhenChanged()"> 
    </div> 
</div> 

コントローラ

それはときにドン場合に提出する上単に 解除モデルの値に、より良い選択肢かもしれないすべてのことを言って
$scope.show = function() { 
    if ($scope.isItOne == '1' || $scope.isItOne == '2'); 
     return true; 
    $scope.nameModel = ''; 
} 

それが送られるのを望んでいない。

関連する問題