Tôi có điều này mảnh làm việc mã được lặp đi lặp lại nhiều lần, do đó sẽ là tuyệt vời cho một vòng lặp ng-repeat. Ví dụ, hai trường hợp mã của tôi là như sau.JS góc: ng-repeat với động ng-mô hình
<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>
Đây là mảng filterParamDisplay trong Javascript:
$scope.filterParamDisplay = [
{param: 'userName', displayName: 'User Name'},
{param: 'userEmail', displayName: 'User Email'}
];
Tôi đã cố gắng để làm điều đó vào một vòng lặp ng-repeat, nhưng không thành công cho đến nay. Đây là những gì tôi đã mã hóa 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>
Các vấn đề nằm trong biến ng-model ở trên và vào chỉ mục $ trong ng-click và ng-show. Không chắc chắn nếu điều này có thể được thực hiện ở tất cả, bất kỳ trợ giúp được nhiều đánh giá cao, cảm ơn!
UPDATE: Cảm ơn tất cả các câu trả lời, sử dụng
<div ng-repeat="p in filterParamDisplay">
...
ng-model="searchParams[p]"
Các công trình lớn!
Vẫn đang vật lộn trên showParam và resetSearchField chức năng không hoạt động đúng cách nhưng sử dụng $ index. Đây là mã của tôi.
$scope.searchParams = $state.current.data.defaultSearchParams;
$scope.resetSearchField = function (searchParam) {
$scope.searchParams[searchParam] = '';
};
$scope.showParam = function (param) {
return angular.isDefined($scope.searchParams[param]);
};
Bạn không cần phải làm 'showParam (filterParamDisplay [$ index])'. 'ShowParam (param)' chính nó sẽ hoạt động, vì 'param' được đặt thành' ngRepeat' – aarosil
Phải có vấn đề với trường 'searchParams'. Bạn có thể chia sẻ js của bạn có chứa 'searchParams' và' resetSearchField'. –