为什么两个单选按钮都被选择为ng值=“n”;真“;并且值=“0”;1〃;

Why both radio buttons are selected with ng-value="true" and value="1"

本文关键字:ng 两个 单选按钮 选择 为什么      更新时间:2023-09-26

我不知道为什么每当您选择value="1"ng-value="true"中的一个时,都会同时选择这两个按钮。

欢迎发表任何意见。

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="inputExample">
  <script>
   angular.module('inputExample', [])
     .controller('ExampleController', ['$scope', function($scope) {
       $scope.chosen = "";
     }]);
</script>
<div ng-controller="ExampleController">
  <input type="radio" ng-model="chosen" value="1"/>
  <input type="radio" ng-model="chosen" value="2"/>
  <input type="radio" ng-model="chosen" ng-value="true"/>
  <pre>{{chosen}}</pre>
</div>
</body>

Plunker示例:https://plnkr.co/edit/qD6Kotx3nXrbtR4bv4Xr?p=preview

您没有赋予单选按钮name属性,因此出于选择目的,所有三个单选输入都是完全独立的,并且都可以选择。

我怀疑原因是1 == true在JavaScript中是真的。例如,Angular在决定是否选择单选按钮值时,会与单选按钮值进行松散的比较。因此,选择具有true的值或具有1的值也会导致选择另一个。(浏览器不会让它们成为独占的,因为你没有给它们name s[如果你给它们起一个通用名称,行为就会变得更奇怪]。)