以下是我工作的小提琴:
ng-model
有一个对象而ng-value
映射到对象,为什么我的默认值为{"id":1,"name":"Bill"}
默认情况下没有被选中。
答案 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(或其选择 父元素)设置为绑定值。