Tôi có đối tượng người dùng được định nghĩa như bên dưới.Làm cách nào để áp dụng bộ lọc trên nhiều đối tượng bằng AngularJS?
$scope.users = [{id: 1, name: 'Adam', friends: [{name: 'John', age: 21, sex: 'M'}, {name: 'Brad', age: 32, sex: 'M'}]}]
Sau đó, tôi đã đoạn mã sau:
<div ng-repeat="user in users>
<input type="text" ng-model="searchText">
<div ng-repeat="friend in user.friends | filter:searchText">
{{user.name}} {{friend.name}} {{friend.age}}
</div>
</div>
Bây giờ khi tôi gõ vào hộp văn bản: 'searchText', tôi muốn các bộ lọc để hiển thị tên của người sử dụng và tên/tuổi của bạn. Bất cứ ai có thể giúp tôi làm thế nào để làm điều này?
Nếu tôi đúng, tôi nghĩ rằng tôi cần tạo bộ lọc tùy chỉnh cho điều này hoặc có cách nào khác để tôi có thể thực hiện việc này không?
Cảm ơn rất nhiều Mark! Nhưng filterFilter này (bạn bè, searchText) sẽ lọc trên tất cả các đối tượng của bạn bè, tên, tuổi và giới tính hoặc chỉ khác tên và tuổi. Yêu cầu của tôi là tôi chỉ muốn 'tên' và 'tuổi' để có thể tìm kiếm được và kết quả chỉ được lọc trên hai đối tượng của bạn bè, vì đó là những trường được hiển thị chứ không phải 'sex' –
Xem câu trả lời cập nhật. –
Tôi nhận ra đây là bao nhiêu ... nhưng điều gì có thể xảy ra khi 'searchText' của đầu vào của tôi luôn luôn được xác định bên trong bộ lọc? Vấn đề phạm vi, rõ ràng, nhưng tại sao? – Clev3r