Javascript 角度:正确显示最初选择的收音机

Javascript 角度:正确显示最初选择的收音机,javascript,angularjs,radio-button,Javascript,Angularjs,Radio Button,我有以下几点:。加载时,初始选择的值为[true],但不会选择相应的收音机。如果我取消注释以下行: $scope.selected = $scope.items[1].value; 然后将显示正确的收音机。我知道这是Javascript如何处理与数组的相等性比较的结果。不幸的是,在我的实际情况中,我看不到任何合理的方法来确保我正在分配相同的对象。有没有其他方法可以让正确的收音机在初始加载时显示为选中的收音机?请在中找到更新的答案 修改了范围 $scope.items = [ {va

我有以下几点:。加载时,初始选择的值为
[true]
,但不会选择相应的收音机。如果我取消注释以下行:

$scope.selected = $scope.items[1].value;

然后将显示正确的收音机。我知道这是Javascript如何处理与数组的相等性比较的结果。不幸的是,在我的实际情况中,我看不到任何合理的方法来确保我正在分配相同的对象。有没有其他方法可以让正确的收音机在初始加载时显示为选中的收音机?

请在中找到更新的答案

修改了范围

  $scope.items = [
    {value: 'false', name: 'False'},
    {value: 'true', name: 'True'},
    {value: 'neither', name: 'False or true'}
  ];
和html

  <label ng-repeat="item in items" ng-init="selected='true'">
    <input type="radio" ng-model="selected" ng-value="item.value" >
    {{ item.name }}
  </label>

{{item.name}

没有任何完美的解决方案,但以下是我的建议:

$scope.selected = {value: [true], name: 'True'};
$timeout(function () {
  $('input[type="radio"]').each(function () {
    if ($scope.selected.value.toString() === this.value) {
      this.checked = true;
    }
  });
});

我还发现这在大多数情况下都是一个很好的选择。它引用的plunker不必像开头一样将
$scope.selectedOption.value
作为字符串。

您的对象的值中似乎有错误,请查找更新的,已将ng init添加到标签中,如果要删除该选项,请取消对第22行的注释。谢谢您的回答。我还应该指定我想尝试并保持当前格式的值。他们使用的是一些自动表格,翻译越少,我必须做得越好。在这种情况下,请删除plunker中的第22行和第23行,并用下面的行替换第27行