2017-08-03 10 views
0

私のプロジェクトでは、以下のラジオボタンを実装しています。私はangularjs techを使用しています。Angularjsラジオボタンがjsonでデフォルト値を指定していません

ブラウザにページをロードしても、値がJSONオブジェクトに入っていません。既に、checked = "true"というタグの属性として指定されています。

私がラジオボタンをもう一度クリックすると、その時間jsonオブジェクトが価値を持ちます。

<input type="radio" ng-model="formModel.internationalClient" ng-value="1">Yes 

<input type="radio" ng-model="formModel.internationalClient" ng-value="0" ng-checked="true">No 

JSONオブジェクトのラジオボタンをクリックする前に

{}

は、後のラジオボタン { "internationalClient":0 }]をクリックし

そうに、ActuallyIは私一度値が欲しいですブラウザにページを読み込んでいます。

ブラウザでページを開くと、以下の結果が欲しいです。 { "internationalClient":0 }

+0

[ 'ngChecked'](https://docs.angularjs.org/api/ng/directive/ngChecked)は、一緒に'とngModel'はどんな意味がないと予期しない結果につながる可能性があります。コントローラのデフォルト値を設定する必要があります。 –

答えて

0

あなたのcのためのplnkrはここにありますase。 https://plnkr.co/edit/TPbYAr0h3BIXQ1RzuMrv?p=preview

希望します。使用

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Example - example-radio-input-directive-production</title> 


    <script src="//code.angularjs.org/snapshot/angular.min.js"></script> 



</head> 
<body ng-app="radioExample"> 
    <script> 
    angular.module('radioExample', []) 
    .controller('ExampleController', ['$scope', function($scope) { 
     $scope.formModel = { 
     internationalClient : 0 
     } 
    }]); 
</script> 
<form name="myForm" ng-controller="ExampleController"> 
    <label> 
    <input type="radio" ng-model="formModel.internationalClient" ng-value="1"> 
    Yes 
    </label><br/> 
    <label> 
    <input type="radio" ng-model="formModel.internationalClient" ng-value="0" ng-checked="true"> 
    No 
    </label><br/> 
    <tt>json = {{formModel}}</tt><br/> 
</form> 
</body> 
</html> 
1

これは単一のフォームモデル(繰り返さない)である場合には、ちょうどあなたのコントローラで初期化します。

$scope.formModel.internationalClient = $scope.formModel.internationalClient || 0; 

それはのための速記です:「それ自体に..internationalClientを設定します。 ..internationalClientがnullの場合を除きます。 "そうすれば、それが国際的なクライアントであり、値が返された場合、この操作は冪等である。それはNGリピートなどでフォームの場合

<form ng-init="formModel.internationalClient = 0"> 

参考:あなたのJavaScriptでhttps://docs.angularjs.org/api/ng/directive/ngInit

+0

これは悪い習慣とは考えられていませんか? –

+1

コメントが更新されました.1つのフォームであれば正解です。私は多くの繰り返しタイプのフォームを扱うので、それは私のトップです。最初の目標として、より良い選択肢を追加しました。 – Brian

+0

最初のオプションは、internationalClientが空でない場合、0に設定することを示すショートカットです。 – Brian

0

デフォルト値に

$scope.formModel.InternationalClient = 0; 

を設定することができますファイル次に、あなたのラジオを持っていますボタンは値を変更します

関連する問題