我有這個工作一段重複多次的代碼,因此對於一個ng-repeat循環來說很好。 例如,我的代碼的兩個實例如下。Angular JS:ng-repeat with dynamic ng-model
<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>
這是filterParamDisplay陣列在Javascript:
$scope.filterParamDisplay = [
{param: 'userName', displayName: 'User Name'},
{param: 'userEmail', displayName: 'User Email'}
];
我一直在嘗試這樣做,到NG-重複循環,但沒有成功爲止。 這就是我編碼的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>
問題出現在上面的ng-model變量和ng-click和ng-show中的$ index中。 不知道這是否可以完成,任何幫助非常感謝,謝謝!
UPDATE: 感謝所有的答案,使用
<div ng-repeat="p in filterParamDisplay">
...
ng-model="searchParams[p]"
的偉大工程!
仍在showParam和resetSearchField函數中掙扎,這些函數在使用$ index時無法正常工作。這是我的代碼。
$scope.searchParams = $state.current.data.defaultSearchParams;
$scope.resetSearchField = function (searchParam) {
$scope.searchParams[searchParam] = '';
};
$scope.showParam = function (param) {
return angular.isDefined($scope.searchParams[param]);
};
你不需要做'showParam(filterParamDisplay [$指數])'。 ''ShowParam(param)''本身應該工作,因爲'param'由'ngRepeat'設置。 – aarosil 2014-09-05 07:11:07
'searchParams'字段必須有問題。你能分享你的包含'searchParams'和'resetSearchField'的js。 – 2014-09-05 07:31:58