Vì vậy, nếu tôi có một mảng:Có thể lọc angular.js bằng cách ngăn chặn trong một mảng khác không?
$scope.letters =
[{"id":"a"},
{"id":"b"},
{"id":"c"}];
Và một mảng
$scope.filterBy = ["b","c","d"];
Và tôi muốn có một số ng-repeat để lọc $ scope.letters bởi chỉ mục xuất hiện trong $ filterBy.
Tôi muốn để có thể làm gì đó để tác động của:
<span ng-repeat="{{letter in letters|filter: letter.id in filterBy }} > {{letter.id}} </span>
Và có nó in b, c
Tôi biết đây là một ví dụ thực sự ngu ngốc, nhưng là có một cách để lọc một biểu thức angular.js dựa trên nội dung của một đối tượng mảng khác?
filterLetters() sẽ được gọi là chu trình tiêu hóa _every_. Vì vậy, nếu bạn có trong lĩnh vực đầu vào bằng cách sử dụng ng-mô hình trong quan điểm của bạn, đó có nghĩa là tất cả các phím tắt. Sẽ tốt hơn nếu lưu trữ kết quả của bộ lọc trên thuộc tính $ scope mới. Sử dụng $ watch() es để cập nhật kết quả lọc nếu thay đổi 'letters' hoặc' filterBy'. –
Điểm tốt. Cảm ơn về lời khuyên. – ValeriiVasin
Trong khi nó sẽ hoạt động (miễn là ứng dụng của bạn rất đơn giản), tôi sẽ không khuyên bạn sử dụng phương pháp này - như @MarkRajcok đề cập, nó được gọi là mỗi chu kỳ tiêu hóa có nghĩa là hiệu suất là khủng khiếp và tôi đã nhận được lỗi từ góc tương tự như "Lỗi: [$ rootScope: infdig] 10 $ digest() lặp lại đạt được. Hủy bỏ! " –