2016-06-30 4 views
-1

チェックボックスをデフォルト値としてチェックします。anglejsでデフォルトでチェックボックスをチェックする方法

HTML:

<div class="form-group col-sm-6" ng-class="{ 'has-error': pForm.caddress.$dirty && pForm.caddress.$error.required }">       
    <label class="control-label l_font" for="address">Current Address*</label> 
    <textarea class="form-control" type="text" name="caddress" placeholder="Current address" ng-model="caddress" ng-disabled ="!pEditMode" ng-required = "true" > 
    </textarea> 
    <span ng-show="pForm.caddress.$dirty && pForm.caddress.$error.required" class="help-block">Current Address is required</span>         
</div> 


<div class="form-group col-sm-6" ng-class="{ 'has-error': pForm.paddress.$dirty && pForm.paddress.$error.required }"> 
    <label class="control-label l_font" for="address">Permanent Address*</label> 
    <input type="checkbox" ng-model="sameAddrres" ng-checked="copyAddress()" ng-disabled ="!pEditMode" /> 
    <i class="inside">Select if Permanent address is same as Current address</i> 

    <style> 
     .inside 
     { 
     font-size: 12px; 
     } 
    </style> 
    <textarea class="form-control" type="text" name="paddress" placeholder="Permanent address" 
    ng-model="paddress" ng-disabled ="!pEditMode || sameAddrres" ng-required = "true" ></textarea> 
    <span ng-show="pForm.paddress.$dirty && pForm.paddress.$error.required" class="help-block">Permanent Address is required</span> 
</div> 

私は、チェックボックスがチェックされている場合は永久的なアドレス値に現在のアドレス値をコピーする機能を使用しています。

コントローラー:

$scope.copyAddress = function(){ 

    if($scope.sameAddrres == true){ 

     $scope.paddress = $scope.caddress; 
    }    
}; 

答えて

0

コントローラが完全ではありません。 $scope.sameAddress = falseが初期化されているか、定義されていないようです。

チェックボックスをオンにすると、コントローラーをロードするときに同じ値が同じかどうかを確認する関数に基づいて、sameAddressフィールドをtrueに設定します。

+0

しかし、私は条件を使用しましたif($ scope.sameAddrres == true) –

+0

チェックボックスをオンにすると、現在のアドレスフィールドの値が永続アドレスフィールドにコピーされます。私は、バックエンドにすべての値を保存していて、ページが更新されたときに応答を得るか、再度ログインします。しかし、ページを更新すると、チェックボックスが消えてフィールドが有効になります。私が間違っているところで助けてくれますか? –

+0

リフレッシュは古い値を破棄し、新しいコントローラインスタンスを作成しています。したがって、以前の値は失われます。コントローラーでページをレンダリングした後、両方のフィールドの値を確認し、等しい場合は、入力チェックボックスのモーダルをtrueに設定します。これはデフォルトではfalseです。 – Prashanth

0

あなたはhereに応じNG-確認してNG-モデルを使用しないでください。 あなたはNG-chekcedを削除し、そのように、このプロパティに見て置くことができます:

$scope.$watchCollection('sameAddrres', function(newValue, oldValue) { 
    if(newValue) 
     $scope.paddress = $scope.caddress; 
}); 
関連する問題