Sebenarnya ada lagi (mungkin solusi yang lebih baik) di mana Anda dapat menggunakan filter 'filter' asli sudut dan tetap meneruskan argumen ke filter kustom Anda.
Perhatikan kode berikut:
<div ng-repeat="group in groups">
<li ng-repeat="friend in friends | filter:weDontLike(group.enemy.name)">
<span>{{friend.name}}</span>
<li>
</div>
Untuk membuat ini bekerja, Anda cukup menentukan filter Anda sebagai berikut:
$scope.weDontLike = function(name) {
return function(friend) {
return friend.name != name;
}
}
Seperti yang Anda lihat di sini, weDontLike sebenarnya mengembalikan fungsi lain yang memiliki parameter Anda dalam cakupannya serta item asli yang berasal dari filter.
Saya butuh 2 hari untuk menyadari bahwa Anda dapat melakukan ini, belum melihat solusi ini di mana pun.
Periksa Polaritas terbalik dari filter angular.js untuk melihat bagaimana Anda dapat menggunakan ini untuk operasi berguna lainnya dengan filter.
Dari apa yang saya pahami, Anda tidak dapat meneruskan argumen ke fungsi filter (saat menggunakan filter 'filter'). Apa yang harus Anda lakukan adalah menulis filter kustom, seperti ini:
Ini adalah jsFiddle yang berfungsi: http://jsfiddle.net/pkozlowski_opensource/myr4a/1/
Alternatif sederhana lainnya, tanpa menulis filter khusus adalah dengan menyimpan nama yang akan difilter dalam sebuah lingkup dan kemudian menulis:
sumber
Sebenarnya Anda dapat mengirimkan parameter ( http://docs.angularjs.org/api/ng.filter:filter ) dan tidak memerlukan fungsi khusus hanya untuk ini. Jika Anda menulis ulang HTML Anda seperti di bawah ini, ini akan berfungsi:
http://jsfiddle.net/ZfGx4/59/
sumber
filter:['Adam', 'john']
Anda cukup melakukan seperti ini Di Template
Di filter
sumber
Memperluas jawaban pkozlowski.opensource dan menggunakan
array's
metode filter bawaan javascript, solusi prettified bisa jadi ini:Ini tautan jsfiddle .
Lebih lanjut tentang filter Array di sini .
sumber
Anda dapat memberikan beberapa argumen ke filter sudut!
Mendefinisikan aplikasi sudut saya dan dan variabel tingkat aplikasi -
Filter Anda akan seperti: -
Dan dari HTML Anda akan mengirimkan data seperti: -
Di sini saya mengirim objek JSON ke filter. Anda juga dapat mengirim data apa pun seperti string atau angka.
Anda juga dapat mengirimkan sejumlah argumen dinamis untuk difilter, dalam hal ini Anda harus menggunakan argumen untuk mendapatkan argumen tersebut.
Untuk demo yang berfungsi, buka di sini - meneruskan beberapa argumen ke filter sudut
sumber
Anda cukup menggunakan
| filter:yourFunction:arg
Dan di js
sumber