Javascript Angularjs:单选按钮已选中

Javascript Angularjs:单选按钮已选中,javascript,angularjs,Javascript,Angularjs,我正在尝试使用单选按钮在AngularJS中构建一个颜色配置程序,一切似乎都在工作,数据绑定,等等。。。但是我无法设置选中的默认颜色单选按钮。正如我在文档中看到的,如果ng模型与radio值相同,则应自动检查输入,但我不知道这是否仅适用于字符串而不适用于对象 这是HTML: <div ng-app ng-controller="ThingControl"> <ul > <li ng-repeat="color in colors">

我正在尝试使用单选按钮在AngularJS中构建一个颜色配置程序,一切似乎都在工作,数据绑定,等等。。。但是我无法设置选中的默认颜色单选按钮。正如我在文档中看到的,如果ng模型与radio值相同,则应自动检查输入,但我不知道这是否仅适用于字符串而不适用于对象

这是HTML:

<div ng-app ng-controller="ThingControl">
    <ul >
        <li ng-repeat="color in colors">
            <input type="radio" ng-model="thing.color" value="{{color}}" />{{ color.name }}
        </li>
    </ul>
    Preview: {{ thing }}
</div> 
您可以在此小提琴中看到前面的示例:


非常感谢

选择由值中定义的字符串匹配,因此您可以

value="{{color.name}}"

$scope.thing = {
    color: $scope.colors[1].name
}

正如@bertez所提到的,使用
ng值
是最好的解决方案

ng-value="color"

您是否已经尝试过更改指令?可以使用表达式将其设置为选中状态,请尝试此操作

<div ng-app ng-controller="ThingControl">
<ul >
    <li ng-repeat="color in colors">
        <input type="radio" ng-model="thing.color" value="{{color}}" ng-checked="$index == 0" />{{ color.name }}
    </li>
</ul>
Preview: {{ thing }}
</div>

  • {{color.name}
预览:{{thing}}
是的,您的解决方案的工作原理是值和模型都是字符串,但如果我按照您的方式执行,我只会将颜色名称绑定到对象:(如您所见:@bertez尝试第二种解决方案。最后,IRC中一个名为dmco的人找到了解决方案:使用ng值!)例如,为什么这也可以很好地工作,但当type='radio'时却不能???这是唯一适合我的东西。不是ng模型,也不是ng值。
ng-value="color"
<div ng-app ng-controller="ThingControl">
<ul >
    <li ng-repeat="color in colors">
        <input type="radio" ng-model="thing.color" value="{{color}}" ng-checked="$index == 0" />{{ color.name }}
    </li>
</ul>
Preview: {{ thing }}
</div>