Belirli bir özelliğin değerlerine göre nesnelerin listesini filtreleyecek AngularJS özel bir filtre oluşturmaya çalışıyorum. Bu durumda, "polarite" özelliğine ("Pozitif", "Nötr", "Negatif" olası değerleri) göre filtre uygulamak istiyorum.
İşte filtre olmadan benim çalışma kodu:
HTML:
<div class="total">
<h2 id="totalTitle"></h2>
<div>{{tweets.length}}</div>
<div id="totalPos">{{tweets.length|posFilter}}</div>
<div id="totalNeut">{{tweets.length|neutFilter}}</div>
<div id="totalNeg">{{tweets.length|negFilter}}</div>
</div>
JSON biçimindeki "$ scope.tweets" dizisi şunlardır:
{{created_at: "Date", text: "tweet text", user:{name: "user name", screen_name: "user screen name", profile_image_url: "profile pic"}, retweet_count: "retweet count", polarity: "Positive"},
{created_at: "Date", text: "tweet text", user:{name: "user name", screen_name: "user screen name", profile_image_url: "profile pic"}, retweet_count: "retweet count", polarity: "Positive"},
{created_at: "Date", text: "tweet text", user:{name: "user name", screen_name: "user screen name", profile_image_url: "profile pic"}, retweet_count: "retweet count", polarity: "Positive"}}
En iyi filtre ben aşağıdaki gibi gelebilir:
myAppModule.filter('posFilter', function(){
return function(tweets){
var polarity;
var posFilterArray = [];
angular.forEach(tweets, function(tweet){
polarity = tweet.polarity;
console.log(polarity);
if(polarity==='Positive'){
posFilterArray.push(tweet);
}
//console.log(polarity);
});
return posFilterArray;
};
});
Bu yöntem boş bir dizi döndürür. Ve "console.log (polarite)" deyiminden hiçbir şey yazdırılmaz. Görünüşe göre "polarite" nin nesne özelliğine erişmek için doğru parametreleri eklemiyorum.
Herhangi bir fikir? Yanıtınız büyük beğeni topluyor.