Angularjs 如何正确使用ng repeat?
我有一个angular表单的旧代码,其中包含以下行:Angularjs 如何正确使用ng repeat?,angularjs,Angularjs,我有一个angular表单的旧代码,其中包含以下行: <label for="language">{{'LANGUAGE_LABEL' | translate}}</label> <select id="language" name="language" ng-model="paramsGEN.lan.paramUserValue"> <option value="en">{{'referencedata.lan
<label for="language">{{'LANGUAGE_LABEL' | translate}}</label>
<select id="language" name="language" ng-model="paramsGEN.lan.paramUserValue">
<option value="en">{{'referencedata.languages.EN' | translate}}</option>
<option value="nl">{{'referencedata.languages.NL' | translate}}</option>
</select>
这是我使用ng repeat的代码:
<select id="language" name="language" ng-model="paramsGEN.lan.paramUserValue">
<option ng-repeat="language in languages track by value" value="{{language.value}}">
{{language.name | translate}}
</option>
{{language.name | translate}}
但它根本不起作用,我得到了“错误:[ngRepeat:dups]”
你能告诉我怎么用ng repeat吗?或ng选项,如果可以,并且其优化程度高于ng重复。
谢谢 按值删除
轨迹
代码
<select id="language" name="language" ng-model="paramsGEN.lan.paramUserValue">
<option ng-repeat="language in languages" value="{{language.value}}">
{{language.name | translate}}
</option>
{{language.name | translate}}
如果您的列表确实有重复项,解决方案是将按值跟踪
替换为按$index跟踪
但是,显示选项的正确方法不是使用
ng repeat
,而是使用ng options
,这可能会为您节省一些代码。查看更多信息和示例。您可以按值进行跟踪,但它没有定义。它应该是language.value
<option ng-repeat="language in languages track by language.value" value="{{language.value}}">
{{'LANGUAGE_LABEL'}}
{{language.name}
在本例中,您需要使用repeat语言中指定的名称为跟踪的属性添加后缀
<select id="language" name="language" ng-model="paramsGEN.lan.paramUserValue">
<option ng-repeat="language in languages track by language.value" value="{{language.value}}">
{{language.name | translate}}
</option>
{{language.name | translate}}
要使用ng选项,以下哪种选项会更好:
<select ng-options="language.name | translate for language in languages track by language.value" ng-model="paramsGEN.lan.paramUserValue"></select>
你能解释一下为什么删除按
跟踪可以解决他的问题吗?1-跟踪在第一次运行后永远不会更改的内容是没有用的。2-按值跟踪是不好的。这是track by language.value
你得到的ngRepeat:dupes
错误似乎与你发布的代码不一致。阅读这里:我一定是瞎了,副本在哪里?OP说:“但它根本不起作用,我得到了“error:[ngRepeat:dupes]”他添加了数据,但那里没有副本,所以我不确定该假设什么。
<select id="language" name="language" ng-model="paramsGEN.lan.paramUserValue">
<option ng-repeat="language in languages track by language.value" value="{{language.value}}">
{{language.name | translate}}
</option>
<select ng-options="language.name | translate for language in languages track by language.value" ng-model="paramsGEN.lan.paramUserValue"></select>