为什么ng-model没有检查默认单选按钮?

时间:2017-03-30 12:43:10

标签: javascript angularjs

以下是我工作的小提琴:

http://jsfiddle.net/3c0dxf4d/

ng-model有一个对象而ng-value映射到对象,为什么我的默认值为{"id":1,"name":"Bill"}  默认情况下没有被选中。

3 个答案:

答案 0 :(得分:1)

查看这个小提琴http://jsfiddle.net/roz98eda/

var app = angular.module("app", []);

app.controller("ctrl", function($scope) {
  $scope.customers = [{
    "id": 1,
    "name": "Bill"
  }, {
    "id": 2,
    "name": "Bob"
  }, {
    "id": 3,
    "name": "Biff"
  }];
  $scope.customer = {};
  $scope.currentCustomer = {
    "id": 1
  };

})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
  <div ng-controller="ctrl">
    <table>
      <tr ng-repeat="theCustomer in customers">
        <td>
          <input type="radio" ng-model="$parent.currentCustomer.id" ng-value="theCustomer.id">{{theCustomer.name}}</td>
      </tr>
    </table>
    <br>
    <div>{{currentCustomer}}</div>
  </div>
</div>

答案 1 :(得分:0)

因为您已将初始值设为 $ scope.currentCustomer = {         “id”:1,         “名字”:“比尔”     };

只需删除或更改即可。 请检查以下代码。

app.controller(“ctrl”,function($ scope){     $ scope.customers = [{         “id”:1,         “名字”:“比尔”     },{         “id”:2,         “名字”:“鲍勃”     },{         “id”:3,         “名字”:“Biff”     }];     $ scope.customer = {};

*$scope.currentCustomer = {
    "id": 1,
    "name": "Bill"
};*

})

答案 2 :(得分:0)

更改

<input type="radio" ng-model="$parent.currentCustomer" name="foo" ng-value="theCustomer" id="{{theCustomer.id}}">

<input type="radio" ng-model="$parent.currentCustomer.id" name="foo" ng-value="theCustomer.id" id="{{theCustomer.id}}">{{theCustomer.name}}</td>

来自ng-value docs

  

它主要用于输入[radio]和选项元素,以便在何时使用   选择元素,该元素的ngModel(或其选择   父元素)设置为绑定值。