我有一个旧的 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 来优化它(我读过 ng 选项更好,但我以前从未使用过......)
因此,在我的 Controller 中,我添加了一个新变量:
$scope.languages = [{
name: "referencedata.languages.EN",
value: "en"
}, {
name: "referencedata.languages.NL",
value: "nl"
}]
这是我使用 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>
但它根本不起作用,我收到“错误:[ngRepeat:dupes]”。
你能告诉我如何在这里使用 ng repeat 吗?或 ng 选项,如果可以的话,如果它更优化了 ng 重复。
谢谢你!!
最佳答案
您通过 value
跟踪但它没有定义。应该是 language.value
.
<option ng-repeat="language in languages track by language.value" value="{{language.value}}">
您可以在下面找到 ng-options 版本:
<select id="language" name="language" ng-model="paramsGEN.lan.paramUserValue"
ng-options="language.name for language in languages track by language.value">
</select>
以及包含两个示例的工作片段:
function Main($scope) {
$scope.languages = [{
name: "referencedata.languages.EN",
value: "en"
}, {
name: "referencedata.languages.NL",
value: "nl"
}];
}
angular.module('test', []);
angular.module('test')
.controller('Main', Main);
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.js"></script>
<div ng-app="test">
<div ng-controller="Main">
<label for="language">{{'LANGUAGE_LABEL'}}</label>
<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}}
</option>
</select>
<hr>
<select id="language" name="language" ng-model="paramsGEN.lan.paramUserValue"
ng-options="language.name for language in languages track by language.value">
</select>
</div>
</div>
关于angularjs - 如何正确使用 ng repeat Angular ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40612154/