Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何正确使用ng repeat?_Angularjs - Fatal编程技术网

Angularjs 如何正确使用ng repeat?

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

我有一个angular表单的旧代码,其中包含以下行:

      <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>