ngChange处理程序中的无线电组模型的设置值

时间:2018-07-05 14:38:19

标签: angularjs radio-button

我有一个简单的表单,带有3个具有相同name="myNumber"的单选按钮和一个处理ng-change事件的方法

<form name="myForm" ng-controller="ExampleController">
  <label>
    <input type="radio" ng-model="number" name="myNumber" value="1" ng-change="handleChange()" /> 1
  </label>
  <label>
    <input type="radio" ng-model="number" name="myNumber" value="2" ng-change="handleChange()" /> 2
  </label>
  <label>
    <input type="radio" ng-model="number" name="myNumber" value="3" ng-change="handleChange()" /> 3
  </label>
</form>

在更改处理程序中,我只需将$ scope.model的值设置为“ 3”

angular.module('radioExample', [])
  .controller('ExampleController', ['$scope', function($scope) {
    $scope.number = "1"; // initial value

    $scope.handleChange = function() {
        $scope.number = "3"; // what I want to do
    };
  }]);

然后,我尝试单击单选按钮以触发$scope.handleChange事件以查看其是否有效,但是自从第二次单击以来,结果是这样的:

  • 预期:单选按钮3一直处于检查状态。

  • 实际:根本不选中所有单选按钮。

编辑1:更新小提琴示例

我将此<div>作为简单的日志添加到了屏幕上,$scope.number的结果始终=“ 3”,这是预期的。单选按钮的检查状态出了问题

<div>
$scope.number = {{number}}
</div>

中部链接:http://jsfiddle.net/ujem8ndx/2/

1 个答案:

答案 0 :(得分:0)

我不知道原因,但是当我从输入中删除name属性时,问题就解决了。

我将其发布为答案是因为它解决了我的问题,但why问题没有得到答案。