我是angularjs的新手..
我想使用单选按钮进行选择并保存为boolean
值。
当我使用ng-value
时,保存到数据库中的值为null
。这是html的代码。
<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 :(得分:4)
问题在于您在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>
编辑1
它保存为null的原因是因为它试图评估未定义的值FALSE
。
答案 1 :(得分:1)
ng-value
需要 AngularJS表达式,在选择无线电时将设置ngModel。
表达式区分大小写,如果您设置ng-value="true"
,它会将您在ng-model
中的内容设置为true
,但如果您拥有ng-value="TRUE"
,则会尝试得到$scope.TRUE
,它找不到,ng-model
设置为null
。
以下是一个例子。
angular.module('radioExample', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.TRUE = "something totally different"
$scope.specialValue = {
"id": "12345",
"value": "green"
};
}]);
&#13;
<!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>
&#13;