Javascript 角度选择和ng选项

Javascript 角度选择和ng选项,javascript,angularjs,angularjs-ng-options,angularjs-track-by,Javascript,Angularjs,Angularjs Ng Options,Angularjs Track By,我有一个选择: <select ng-model='obj.status' ng-options='status.code as (status.code + " " + status.phrase) for status in status_codes.data track by status.code'>` 当我更改选择时,我的$scope.obj.status将更新为“300”或“100”或任何内容,但选择显示始终为空。因此,模型将更新为选择输入的选定值,但输入不显示当前选定

我有一个选择:

<select ng-model='obj.status' ng-options='status.code as (status.code + " " + status.phrase) for status in status_codes.data track by status.code'>`
当我更改选择时,我的
$scope.obj.status
将更新为“300”或“100”或任何内容,但选择显示始终为空。因此,模型将更新为选择输入的选定值,但输入不显示当前选定的值,而是显示一个空白项

如果我将ng options更改为
ng options='status as(status.code…')
它可以工作,但我只需要模型中的status.code,而不是整个状态数组。给出了什么

我的HTML中有
{{obj|json}
,内容如下:

obj = {
  "name": "",
  "description": "",
  "payload": "",
  "status": "200",
  "responseHeaders": {
    "entry": [
      {
        "key": "",
        "value": ""
      },
      {
        "key": "",
        "value": ""
      }
    ]
  }
}
拆下履带

从:

在同一表达式中使用“选择为”和“跟踪方式”时要小心

我最好的猜测是as使用正常值,如“300”,但track by使用类型化值,如“int:300”。删除一个或另一个就可以了,最好是track by

他们举了一个例子:

这将有助于:


但这是行不通的:


根据此处的文档:

因此,在您的示例中,这应该是可行的(您将在模型中获得代码值作为选择值):


当您在模型中有对象作为值,在选项中有对象数组,并且希望将当前模型值与数组中的一个对象匹配时,应使用
跟踪方式。

您确定要更新到
“300”
而不是
300
?不确定到底发生了什么,但通过删除曲目是有效的。@mikeb我在开始时经常遇到这个问题。阅读文档总是有帮助的(大多数角度方法都有很好的文档…)。查看编辑,有一行定义了哪些有效,哪些无效。
obj = {
  "name": "",
  "description": "",
  "payload": "",
  "status": "200",
  "responseHeaders": {
    "entry": [
      {
        "key": "",
        "value": ""
      },
      {
        "key": "",
        "value": ""
      }
    ]
  }
}
<select ng-options="item as item.label for item in items track by item.id" ng-model="selected"></select>
<select ng-options="item.subItem as item.label for item in items track by item.id" ng-model="selected"></select>
select as label for value in array
status.code as (status.code + " " + status.phrase) for status in status_codes.data