SORU
16 AĞUSTOS 2012, PERŞEMBE


Nasıl angularjs filtre içindeki parametreleri kullanılır?

Ng-repeat ile bazı diziler ben yineleme zaman filtresi, parametre kullanmak istiyorum

örnek:

HTML-Bölüm:

<tr ng-repeat="user in users | filter:isActive">

JS-bölüm:

$scope.isActive = function(user) {
    return user.active === "1";
};

Ama filtre gibi kullanmak mümkün olmak istiyorum

<tr ng-repeat="user in users | filter:isStatus('4')">

Ama çalışma değil. Nasıl böyle bir şey yapabilir miyim?

Teşekkür Ederim!

CEVAP
16 AĞUSTOS 2012, PERŞEMBE


GÜNCELLEME:Sanırım ben bakmadım aslında belgelere yeterince iyi ama kesinlikle kullanın filter filtre ile bu sözdizimi (this fiddle) filtre tarafından bir özellik nesneleri:

<tr ng-repeat="user in users | filter:{status:4}">

İşte birileri yardımcı olur diye benim orijinal cevap:

filter filtre kullanarak bir parametre geçmek mümkün olmayacak ama en azından yapabileceğin iki şey var.

1) this fiddle gibi filtre işlevi kapsamında bir değişken filtre ve başvurmak istediğiniz veri Kümesi.

JavaScript:

$scope.status = 1;
$scope.users = [{name: 'first user', status: 1},
                {name: 'second user', status: 2},
                {name: 'third user', status: 3}];

$scope.isStatus = function(user){
    return (user.status == $scope.status);
};

Html:

<li ng-repeat="user in users | filter:isStatus">

YA

2) this fiddle gibi bir parametre kabul eden yeni bir filtre Oluşturun.

JavaScript:

var myApp = angular.module('myApp', []);
myApp.filter('isStatus', function() {
  return function(input, status) {
    var out = [];
      for (var i = 0; i < input.length; i  ){
          if(input[i].status == status)
              out.push(input[i]);
      }      
    return out;
  };
});

Html:

<li ng-repeat="user in users | isStatus:3">

Bu filtre, daha az yeniden kullanılabilir duruma sokan dizideki nesneleri status bir özellik var ama bu sadece bir örnek olduğunu varsayar. Filtre oluşturma hakkında daha fazla bilgi için this okuyabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Blue Lightning TV

    Blue Lightni

    9 EKİM 2011
  • hidetake takayama

    hidetake tak

    3 Mart 2009
  • Ludique

    Ludique

    21 NİSAN 2009