角度ng-if与ng-repeat投掷错误

时间:2015-10-05 16:47:00

标签: javascript angularjs

Howdie do,

所以我尝试做的就是根据范围变量显示一组选项。

奇怪的是,由于某种原因,即使条件失败,ng-repeat仍在运行。

正在启用的范围变量是$ scope.code

<select id="customer-dd" ng-model="selectedCustomer">
     <option value="">select...</option>
     <option ng-if="code == 'multiAdmin' || code == 'admin' " ng-repeat="companyCode in companyGroups"  value="{{ companyCode }} " >{{ companyCode }}</option>
     <option ng-if="code != 'multiAdmin' || code != 'admin' " ng-repeat="company in code" value="{{ company }} " >{{ company }}</option>
</select>

这导致以下错误:

Error: [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: company in code, Duplicate key: string:m, Duplicate value: m

因此,例如,$ scope.code =&#39; multiAdmin&#39;,第一个ng-repeat应该执行它所执行的操作。

但是下一个ng-repeat不应该作为条件代码执行!=&#39; multiAdmin&#39; ||代码!=&#39; admin&#39;

但由于某种原因,基于错误,下一个循环正在执行并循环遍历具有两个&#39; i&#39;在其中并导致错误。

所以我的问题是,当代码==&#39; multiadmin&#39;时,如何确保第二个ng-if / ng-repeat组合不会执行?或者&#39; admin&#39;

*更新*

无论条件如何,似乎ng-repeat都会执行。它只是没有根据条件显示结果。

2 个答案:

答案 0 :(得分:1)

您需要按照某些内容进行跟踪,例如<cross-domain-policy> <site-control permitted-cross-domain-policies="master-only"/> <allow-access-from domain="*"/> <allow-http-request-headers-from domain="*" headers="*"/> </cross-domain-policy>

$index

答案 1 :(得分:0)

您在第二个ng-if中写错了条件表达式。

  

确保代码=='multiadmin'或'admin'

时,第二个ng-if / ng-repeat组合不会执行

所以第二个ng-if应该是:

 <option ng-if="code != 'multiAdmin' && code != 'admin' " ng-repeat="company in code" value="{{ company }} " >{{ company }}</option>