de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
 aron.duby
aron.duby
Question

sudut ng-repeat melewatkan item jika pertandingan ekspresi

I'm mencari cara untuk pada dasarnya memberitahu sudut untuk melewatkan item di ng-ulangi jika pertandingan ekspresi, pada dasarnya lanjutkan;

Di controller:

$scope.players = [{
    name_key:'FirstPerson', first_name:'First', last_name:'Person'
}, {
    name_key:'SecondPerson', first_name:'Second', last_name:'Person'
}]

Sekarang saya template saya ingin menunjukkan kepada semua orang bahwa doesn't match name_key='FirstPerson'. Saya pikir itu harus menjadi filter agar aku setup Plunkr untuk bermain-main dengan hal itu tapi belum't punya keberuntungan. Plunkr Usaha

90 2013-11-05T07:30:53+00:00 3
Pemrograman
angularjs
angularjs-ng-repeat
Solution / Answer
 gion_13
gion_13
5 November 2013 в 7:48
2013-11-05T07:48:00+00:00
Lebih
Sumber
Sunting
#22715950

Sebagai @Maxim Shoustin menyarankan, cara terbaik untuk mencapai apa yang anda inginkan akan menggunakan filter khusus. Tapi ada cara lain, salah satu dari mereka yang menggunakan ng-jika direktif pada unsur yang sama yang anda menempatkan ng-repeat direktif (juga, di sini's plunker):

<ul>
    <li ng-repeat="player in players" ng-if="player.name_key!='FirstPerson'"></li>
</ul>

Ini dapat menimbulkan kerugian kecil dari estetical perspektif, tapi memiliki keuntungan besar yang anda penyaringan dapat didasarkan pada suatu aturan yang tidak ketat ditambah dengan pemain array dan yang dapat dengan mudah mengakses data dalam aplikasi anda's lingkup:

  <li 
      ng-repeat="player in players" 
      ng-if="app.loggedIn && player.name != user.name"
  ></li>

Update Seperti yang dinyatakan, ini adalah salah satu solusi untuk masalah seperti ini dan mungkin atau mungkin tidak sesuai dengan kebutuhan anda. Seperti yang ditunjukkan di komentar, ng-jika adalah direktif, yang benar-benar berarti bahwa itu mungkin melakukan hal-hal di latar belakang daripada yang mungkin anda harapkan. Misalnya, ng-jika menciptakan ruang lingkup baru dari it's orang tua:

lingkup yang dibuat dalam ngIf mewarisi dari orang tua lingkup menggunakan prototypal warisan.

Hal ini biasanya doesn't mempengaruhi perilaku normal tetapi dalam rangka untuk mencegah keadaan yang tidak terduga, anda harus menjaga ini dalam pikiran sebelum menerapkan.

Jackie Degl&#39;Innocenti
Jackie Degl'Innocenti
Jawaban edit 6 November 2017 в 12:41
142
0
Ilya Luzyanin
Ilya Luzyanin
9 Juli 2015 в 12:15
2015-07-09T12:15:50+00:00
Lebih
Sumber
Sunting
#22715951

Saya tahu ini adalah satu yang lama, tetapi dalam kasus seseorang akan mencari solusi lain yang mungkin, berikut adalah cara lain untuk memecahkan masalah ini digunakan standar filter fungsi:

Objek: pola objek dapat digunakan untuk menyaring sifat-sifat tertentu pada benda-benda yang terkandung oleh array. Misalnya {nama:"M", telepon:"1"} predikat akan mengembalikan sebuah array dari item yang memiliki nama properti mengandung "M" dan properti telepon yang berisi "1". ... Predikat dapat ditiadakan dengan awalan string dengan !. Misalnya {nama: "!M"} predikat akan mengembalikan sebuah array dari item yang memiliki nama properti tidak mengandung "M".

Jadi untuk TS contoh sesuatu seperti ini harus dilakukan:

<ul>
    <li ng-repeat="player in players | filter: { name_key: '!FirstPerson' }"></li>
</ul>

Tidak perlu menulis filter kustom, tidak perlu menggunakan ng-jika dengan itu's lingkup baru.

Ilya Luzyanin
Ilya Luzyanin
Jawaban edit 15 Oktober 2016 в 5:06
41
0
Maxim Shoustin
Maxim Shoustin
5 November 2013 в 7:40
2013-11-05T07:40:09+00:00
Lebih
Sumber
Sunting
#22715949

Anda dapat menggunakan khusus filter ketika anda menerapkan ng-repeat. Sesuatu seperti:

 data-ng-repeat="player in players |  myfilter:search.name

myfilter.js:

app.filter('myfilter', function() {

   return function( items, name) {
    var filtered = [];

    angular.forEach(items, function(item) {

      if(name == undefined || name == ''){
        filtered.push(item);
        }

      /* only if you want start With*/
      // else if(item.name_key.substring(0, name.length) !== name){
      //   filtered.push(item);
      // }

      /* if you want contains*/
      // else if(item.name_key.indexOf(name) < 0 ){
      //   filtered.push(item);
      // }

       /* if you want match full name*/
       else if(item.name_key !== name ){
        filtered.push(item);
      }
    });

    return filtered;
  };
});

Demo Plunker

 Community
Community
Jawaban edit 18 Januari 2016 в 2:44
19
0
Related communities 1
Angular Indonesia
Angular Indonesia
3 519 pengguna
Framework web development aplikasi web dan mobile https://angular.io/ Facebook Group https://www.facebook.com/groups/462764390497214/ Github Repo Angular ID https://github.com/angular-indonesia Medium Angular Indonesia https://medium.com/angularid
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Asilbek Qadamboyev
Terdaftar 1 hari yang lalu
2
Akshit Mehta
Terdaftar 4 hari yang lalu
3
me you
Terdaftar 1 minggu yang lalu
4
Никита иванов
Terdaftar 1 minggu yang lalu
5
Alex1976G_06
Terdaftar 1 minggu yang lalu
ID
JA
KO
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi