Rumah > Soal Jawab > teks badan
<li ng-repeat="telefon dalam telefon|filter:query">
Secara amnya, penapisan ditulis seperti ini, tetapi saya hanya mahu menyasarkan sebahagian daripada data Bagaimana untuk melaksanakan penapisan pada phone.name? ?
漂亮男人2017-05-15 16:58:17
Menurut dokumentasi rasmi, terdapat beberapa cara untuk mencapai ini:
{{ filter_expression filter : expression : comparator}}
1. Seperti kaedah yang diberikan oleh Guox, gunakan ungkapan:
Objek: Objek corak boleh digunakan untuk menapis sifat tertentu pada objek yang terkandung oleh tatasusunan Contohnya predikat {name:"M", phone:"1"} akan mengembalikan tatasusunan item yang mempunyai nama sifat yang mengandungi "M. " dan telefon harta yang mengandungi "1".
Digunakan sebagai Objek, digunakan untuk menapis atribut tertentu elemen tatasusunan, seperti ungkapan = {nama: "M", telefon: "1"}, kemudian ia akan menapis bahawa nama dalam tatasusunan mengandungi 'M' dan telefon mengandungi elemen '1'.
Jadi hanya gunakan kaedah berikut
<li ng-repeat="phone in phones|filter:{name:query}">
2. Pembanding boleh digunakan:
Pembanding yang digunakan dalam menentukan sama ada nilai yang dijangkakan (daripada ungkapan penapis) dan nilai sebenar (daripada objek dalam tatasusunan) harus dianggap sebagai padanan.
fungsi(sebenar, dijangka): Fungsi akan menjadi diberi nilai objek dan nilai predikat untuk dibandingkan dan harus mengembalikan benar jika kedua-dua nilai harus dianggap sama.
Nilai pulangan Comparator boleh digunakan untuk menentukan sama ada terdapat padanan Parameter input adalah sebenar (elemen dalam tatasusunan) dan dijangka (input)
Kemudian tentukan fungsi
$scope.customerFilter = customerFilter;
function customerFilter(actual, expected){
return actual.name.contains(expexted) ? true : false;
}
前端使用
<li ng-repeat="phone in phones|filter:query:customerFilter">