2016-04-25 7 views
2

私はフォームを持っています。このフォームを送信する前に、チェックボックスに基づいて何かをしたいと思います。ng-modelを使用してチェックボックスの値を知る方法

これは私のチェックボックスである:私はこれ持って

私のコントローラで
<input type="checkbox" name="resident" id="resident" 
       ng-model="resident" ng-init="resident=false"> 

$scope.submitForm = function (isValid) { 

    if(!$scope.resident){ 
       //code... 
    }else{ 
       //code... 
    } 

} 

をその後私はいつも、私はfalseにそれを初期化しているにもかかわらず、未定義として、このチェックボックスの値を取得。

ng-change私はチェックボックスの値を知っていて、変更されたときにはいつでも治療をしないといけないので、私はng-changeと仕事したくありません。

どうすればこの問題を解決できますか?

+0

value属性が入力 –

+0

@AnkurTiwariから欠落している私は、属性値を添付しましたが、私はまだそれが常にはい、申し訳ありませんあなたはすでに問題の1つを指定していた –

+0

を持っています。 –

答えて

2

質問に添付したコードには問題がありません。問題は、あなたがここに投稿していないコードのどこかにあります。それが動作する以下のコードを参照してください。

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app=""> 
 
    
 
    <input type="checkbox" name="resident" id="resident" 
 
      ng-model="resident" ng-init="resident=false">{{resident}} 
 
    
 
</div>

可能性のある問題: 入力チェックボックスに接続されている範囲を参照してくださいが、時々、変数やモデルが親スコープにあったことが起こると、我々は子スコープで操作しようとしています。お子様や親の範囲の検査に関してあなたをより良く導くことができるbatrangのようなクロムツールを使用してください。

+0

を使用すると、問題の原因がわかりました –

1

ビュー:

<input type="checkbox" name="resident" id="resident" ng-model="resident.checked"> 

コントローラー:

$scope.resident = { 
    checked: false; 
} 

それです!モデルはng-modelディレクティブを介してfalseからtrueに自動的に切り替わります。 http://jsfiddle.net/Lvc0u55v/2989/

+1

ng-initを使うのは悪い習慣です。これは、ビューがコントローラとは異なる時刻に初期化され、ダイジェストサイクルがその関数を処理しなければならないためであり、これはサイクルへの不要な追加です。そのツールを使用して – carlcheel

関連する問題