I have this working piece of code that is repeated multiple times, hence would be great for a ng-repeat loop.
For example, two instances of my code are the following.
<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>
This is the filterParamDisplay array in Javascript:
$scope.filterParamDisplay = [
{param: 'userName', displayName: 'User Name'},
{param: 'userEmail', displayName: 'User Email'}
];
I have been trying to do that into a ng-repeat loop, but without success so far.
This is what I have coded atm.
<div ng-repeat=param in filterParamDisplay>
<input type=text ng-model=searchParams[{{param}}] placeholder={{param.displayName}}/>
<i class=fa fa-times ng-click=resetSearchField(filterParamDisplay[$index].param) ng-show=showParam(filterParamDisplay[$index].param)></i>
</div>
The problems are into the ng-model variable above, and into the $index in the ng-click and ng-show.
Not sure if this can be done at all, any help is much appreciated, thanks!
UPDATE:
Thanks for all the answers, using
<div ng-repeat=p in filterParamDisplay>
...
ng-model=searchParams[p]
Works great!
Still struggling on the showParam and resetSearchField functions which do not work properly yet using $index. Here is my code.
$scope.searchParams = $state.current.data.defaultSearchParams;
$scope.resetSearchField = function (searchParam) {
$scope.searchParams[searchParam] = '';
};
$scope.showParam = function (param) {
return angular.isDefined($scope.searchParams[param]);
};