使用ng-value作为单选按钮(angularjs)

时间:2017-04-07 07:06:05

标签: javascript angularjs

我是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>

2 个答案:

答案 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>

Fiddle for example

编辑1

它保存为null的原因是因为它试图评估未定义的值FALSE

答案 1 :(得分:1)

ng-value需要 AngularJS表达式,在选择无线电时将设置ngModel。

表达式区分大小写,如果您设置ng-value="true",它会将您在ng-model中的内容设置为true,但如果您拥有ng-value="TRUE",则会尝试得到$scope.TRUE,它找不到,ng-model设置为null

以下是一个例子。

&#13;
&#13;
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;
&#13;
&#13;