我从某个资源返回了一些数据,如下所示:
$scope.phones = [
{
Value: <some value>,
IsDefault: true
},
{
Value: <some value>
IsDefault: false
}
];
为了简单起见,这是中继器:
<div ng-repeat="phone in phones">
<input type="radio" name="phone" ng-model="phone.IsDefault" />
</div>
我希望检查哪个 radio 来相应地更新模型 - 这没有发生。页面加载时,不会检查任何内容。我可以使用 ng-checked - 但没有 ng-model 它不会绑定(bind)回数组。我是否遗漏了一些简单的东西,或者我是否坚持编写 ng-change
事件来手动更新数组?
到目前为止,我还编写了一个 ng-change
事件,它目前看起来像:
ng-model="phone.IsDefault" ng-value="true" ng-change="newPhoneSelected($index)"
$scope.newPhoneSelected = function (index) {
for (var i = 0; i < $scope.phones.length; i++) {
if (i == index) $scope.phones[i].IsDefault = true;
else $scope.phones[i].IsDefault = false;
}
}
最佳答案
您缺少ng-value
...这是单选按钮,它们基于value
来将值标记为选定。您需要 [value=""| ng-value=""]
<input type="radio"
ng-model=""
[value="" |
ng-value=""]>
喜欢:
<input type="radio" ng-value="true" name="boolean" ng-model="myValue" /> True
<input type="radio" ng-value="false" name="boolean" ng-model="myValue" /> False
这是一个plunker demo
或者使用字符串值:
$scope.myValue = 'Car'
html
<input type="radio" ng-value="'Car'" name="string1" ng-model="myValue" /> Car
<input type="radio" ng-value="'Airplane'" name="string1" ng-model="myValue" /> Airplane
这可能是最接近您所拥有的示例:
关于javascript - Angular - 将复选框从 ng-repeat 绑定(bind)到 ng-model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23817649/