2017-04-07 5 views
3

anglejsで新しいです。 ラジオボタンを使用して選択し、booleanの値を保存したいと思います。 ng-valueを使用すると、データベースに保存する値はnullになります。これはhtmlのコードです。ラジオボタン(angularjs)にng-valueを使用

<label><input type="radio" ng-model="information" ng-value="TRUE" name="maklumat">Yes</label><br /> 
<label><input type="radio" ng-model="information" ng-value="FALSE" name="maklumat">False</label> 

答えて

0
ng-value

ラジオが選択されたときngModelが設定されますれるAngularJS発現を期待します。

大文字と小文字が区別されて表現あなたはng-value="true"を設定した場合、それはあなたのあなたがtrueng-modelに持っているものを設定しますが、あなたはng-value="TRUE"を持っている場合、それが見つからないと、あなたのng-modelnullに設定されます$scope.TRUEを取得しようとします。

例を示します。

angular.module('radioExample', []) 
 
    .controller('ExampleController', ['$scope', function($scope) { 
 
    $scope.TRUE = "something totally different" 
 
    $scope.specialValue = { 
 
     "id": "12345", 
 
     "value": "green" 
 
    }; 
 
    }]);
<!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"> 
 

 
    <form name="myForm" ng-controller="ExampleController"> 
 
    <label> 
 
    <input type="radio" ng-model="color.name" ng-value="specialValue"> 
 
    SpecialValue 
 
    </label><br/> 
 
    <label> 
 
    <input type="radio" ng-model="color.name" ng-value="true"> 
 
    true 
 
    </label><br/> 
 
    <label> 
 
    <input type="radio" ng-model="color.name" ng-value="TRUE"> 
 
    TRUE 
 
    </label><br/><br/> 
 
    <tt>color = {{color.name | json}}</tt><br/> 
 
    </form> 
 
    <br><br/><br/> Note that `ng-value="specialValue"` sets radio item's value to be the value of `$scope.specialValue`. 
 
</body> 
 

 
</html>

+0

実際にはブール値が必要な場合は、値を文字列ではなくブール値にするため、 'ng-value'を使用する方が良いでしょう。この例[fiddle](http://jsfiddle.net/tur9582o/3/)の例を参照してください。これをリンクしたドキュメントでも展開するには、string以外のngModel(ブール値、配列など)が必要な場合は、value属性の代わりに_ng-valueを使用する必要があります。 – George

+0

@George yes、それを得ました、更新された答え、ありがとう – tanmay

4

問題は、あなたがちょうどそうのような下ケースに変更し、ng-value値で入力したものです。定義されていない値FALSEを評価しようとしているので、それがヌルとして保存されて

<label> 
    <input type="radio" ng-model="information" ng-value="true" name="maklumat">Yes 
</label> 
<br /> 
<label> 
    <input type="radio" ng-model="information" ng-value="false" name="maklumat">False 
</label> 

Fiddle for example

EDIT 1

理由があります。

+1

また、コントローラの '$ scope.information = false'にデフォルト値を代入する方が良いでしょう。 – Nishant123

関連する問題