Angularjs ng在选择标记中重复,不产生结果

Angularjs ng在选择标记中重复,不产生结果,angularjs,Angularjs,在select标记中使用ng repeat时遇到很多问题。由于某些原因,以下内容不起作用,尽管所有文档都表明它应该起作用 <select id="blahh" ng-model="log_instances" class="selectpicker" multiple> <option>this works</option> <!-- this works --> <option ng-repeat="comp in env.st

在select标记中使用ng repeat时遇到很多问题。由于某些原因,以下内容不起作用,尽管所有文档都表明它应该起作用

<select id="blahh" ng-model="log_instances" class="selectpicker" multiple>
  <option>this works</option> <!-- this works -->
    <option ng-repeat="comp in env.status.components">test-value</option>
</select>

这很有效
测试值
最后显示的唯一选项是“this works”(此选项有效),但我希望ng repeat(ng重复)中描述的每个项目都会显示“test value”(测试值)

此外,我还检查了控制台中的
angular.element(document.getElementById('blahh')).scope()
,它显示了我希望看到的正确数据。此外,如果我在这个select的正下方包含一个表,该表具有相同的ng repeat和字段,那么它将生成预期的输出。我用的是Angular 1.6.5


感谢您的帮助

使用
ng选项
如下所示。但是您的代码也应该可以检查
env.status.components

<select ng-options="item as item.label for item in items track by item.id" ng-model="selected"></select>

我想问你的问题是,如果你手头有足够的资源,为什么要在多选中使用
ng repeat

假设您的
comp
对象如下所示:

{
  name: 'somevalue'
}
我会将您的代码更改为:

<select id="blahh"  multiple="true" ng-model="log_instances" ng-options="comp.name for comp in env.status.components"></select>


请看一看我为您制作的

原始问题中包含的HTML片段有
标记作为
标记的直接子项,这将产生无效标记,因为只允许
元素

每当您有一个需要显示为选择列表的数据收集时,Angular的属性使其变得简单


此外,如果您需要一个默认选项(例如,由于AJAX请求,采集数据可能正在传输中),请包括一个分配了空值的
元素(即
value=”“
),然后,您可以使用
ng if
在不再需要时隐藏此默认选项。

仅允许
元素作为子元素(即生成无效标记)。为什么不改为使用
上的属性呢?啊,是的,很好的一点@miqid,但这意味着上面的(编辑过的)应该可以工作?就像在中一样,我只是尝试了上面的方法,但仍然不起作用:/我想我的建议不够清楚,根本不要使用
ng repeat
,而是使用
ng options
。下面是一个如何使用它的示例,当然要根据您的情况调整它:啊,是的,这是有效的,因为您是第一个提出这一点的,如果您想在下面提供,我可以标记您的答案:)