如果此值是对象而不是字符串,如何设置无线电的默认值?
编辑:
为了使事情更清楚,我更新了小提琴:
看看小提琴:
http://jsfiddle.net/JohannesJo/CrH8a/
<body ng-app="app"> <div ng-controller='controller'> oConfigTerminal value= <input type="text" ng-model="oConfigTerminal"/><br><br> <div ng-show="!oConnection.aOptions" ng-repeat="oConnection in oFormOptions.aStationaryConnections"> <label> <input type="radio" name="connection" ng-model="$parent.oConfigTerminal" value="{{oConnection.id}}" />{{oConnection.sId}}</label> </div> </div>
app = angular.module('app',[]); app.controller('controller',function ($scope) { $scope.oFormOptions = {}; $scope.oConfigTerminal=0; $scope.oFormOptions.aStationaryConnections = [{ id: 1,sId: "analog" },{ id: 2,sId: "isdn" },{ id: 3,sId: "dsl" }]; // !!! Trying to set the default checked/selected value !!! $scope.oConfigTerminal = $scope.oFormOptions.aStationaryConnections[0]; });
解决方法
在浏览器控制台中检查实时html,您将看到oConnection是一个对象,无线电的值变为:{“id”:1,“sId”:“analog”}.您可能希望使用oConnection.id作为值
ng-repeat中的另一个问题是,通过将ng-model设置为$parent.variableName,需要为ng-model解决范围继承问题
您的oConnectionTmpView对我没有任何意义,因此为了简化我将其删除:
HTML:
<div ng-show="!oConnection.aOptions" ng-repeat="oConnection in oFormOptions.aStationaryConnections"> <label> <input type="radio" name="connection" ng-model="$parent.oConfigTerminal" value="{{oConnection.id}}" /> {{oConnection.sId}} </label> </div>
JS:
app = angular.module('app',function ($scope) { $scope.oFormOptions = {}; $scope.oConfigTerminal = 0; $scope.oFormOptions.aStationaryConnections = [{ id: 1,sId: "analog" },{ id: 2,sId: "isdn" },{ id: 3,sId: "dsl" }]; }