在对象中声明的数组上使用 ng-options

Using ng-options on array declared in an object

在我的控制器中,我有:

 $scope.sizes = {
    things: [
        'one',
        'two'
        ]
}

在我的 HTML 中,我有

  <select ng-options="thing for thing in sizes.things"></select>

生成的组合框没有值。但是,在这种情况下:

 $scope.things = ['one', 'two'];

  <select ng-options="thing for thing in things"></select>

生成的组合框显示 "one"、"two" 作为其选项。有人可以解释为什么我不能访问 $scope 对象中的数组吗?

您的 ng-options select 元素缺少 ng-model 属性。

添加 ng-model="thing" 使其正常工作...

<select ng-model="thing" ng-options="thing for thing in sizes.things"></select>

您可以看到一个工作示例 here

PS 它实际上对数组或对象都不起作用。添加 ng-model 属性使两者都起作用。