Ich habe dieses funktioniert Stück Code, der mehrmals wiederholt wird, wäre also ideal für eine ng-Repeat-Schleife. Zum Beispiel sind zwei Instanzen meines Codes die folgenden.Angular JS: ng-repeat mit dynamischem ng-Modell
<div>
<input type="text" ng-model="searchParamaters.userName" placeholder="User Name"/>
<i class="fa fa-times" ng-click="resetSearchField(filterParamDisplay[0].param)" ng-show="showParam(filterParamDisplay[0].param)"></i>
</div>
<div>
<input type="text" ng-model="searchParamaters.userEmail" placeholder="User Email"/>
<i class="fa fa-times" ng-click="resetSearchField(filterParamDisplay[1].param)" ng-show="showParam(filterParamDisplay[1].param)"></i>
</div>
Dies ist die filterParamDisplay Array in Javascript:
$scope.filterParamDisplay = [
{param: 'userName', displayName: 'User Name'},
{param: 'userEmail', displayName: 'User Email'}
];
Ich habe das in eine ng-Wiederholungsschleife zu tun versucht, aber bisher ohne Erfolg. Dies ist, was ich atm codiert habe.
Die Probleme sind in der obigen ng-Modell-Variable und in den $ index in ng-click und ng-show. Nicht sicher, ob dies überhaupt möglich ist, jede Hilfe wird sehr geschätzt, danke!
UPDATE: Danke für alle Antworten, mit
<div ng-repeat="p in filterParamDisplay">
...
ng-model="searchParams[p]"
funktioniert super!
Immer noch Schwierigkeiten mit den Funktionen showParam und resetSearchField, die noch nicht richtig arbeiten mit $ index. Hier ist mein Code.
$scope.searchParams = $state.current.data.defaultSearchParams;
$scope.resetSearchField = function (searchParam) {
$scope.searchParams[searchParam] = '';
};
$scope.showParam = function (param) {
return angular.isDefined($scope.searchParams[param]);
};
Sie brauchen nicht 'showParam (filterParamDisplay [$ index])' zu tun. 'ShowParam (param)' selbst sollte funktionieren, da 'param' durch das' ngRepeat' auf das gesetzt wird – aarosil
Es muss ein Problem mit dem 'searchParams' Feld geben. Können Sie Ihre js teilen, die 'searchParams' und' resetSearchField' enthält. –