亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在angularJS中按對象屬性過濾

如何在angularJS中按對象屬性過濾

忽然笑 2019-12-16 10:54:51
如何在angularJS中按對象屬性過濾我試圖在AngularJS中創建一個自定義過濾器,該過濾器將通過特定屬性的值過濾對象列表。在這種情況下,我想按“極性”屬性(“正”,“中性”,“負”的可能值)進行過濾。這是我沒有過濾器的工作代碼: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格式的“ $ scope.tweets”數組:{{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"}}我可以提出的最佳過濾器如下: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;};});此方法返回一個空數組。從“ console.log(polarity)”語句中不會打印任何內容。似乎我沒有插入正確的參數來訪問“極性”的對象屬性。有任何想法嗎?非常感謝您的回復。
查看完整描述

4 回答

?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

您只需要使用filter過濾器(請參閱文檔):


<div id="totalPos">{{(tweets | filter:{polarity:'Positive'}).length}}</div>

<div id="totalNeut">{{(tweets | filter:{polarity:'Neutral'}).length}}</div>

<div id="totalNeg">{{(tweets | filter:{polarity:'Negative'}).length}}</div>


查看完整回答
反對 回復 2019-12-16
?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

該文檔具有完整答案。無論如何,這是如何完成的:


<input type="text" ng-model="filterValue">

<li ng-repeat="i in data | filter:{age:filterValue}:true"> {{i | json }}</li>

將僅age在data數組中過濾,并且true用于完全匹配。


對于深層過濾,


<li ng-repeat="i in data | filter:{$:filterValue}:true"> {{i}}</li>

$對于深層過濾器,這是一個特殊屬性,對于true上述的完全匹配,這是一個特殊屬性。


查看完整回答
反對 回復 2019-12-16
?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

您也可以這樣做以使其更具動態性。


<input name="filterByPolarity" data-ng-model="text.polarity"/>

然后您ng-repeat會像這樣


<div class="tweet" data-ng-repeat="tweet in tweets | filter:text"></div>

當然,此過濾器僅用于按極性過濾


查看完整回答
反對 回復 2019-12-16
?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

我們的收藏如下

句法:


{{(Collection/array/list | filter:{Value : (object value)})[0].KeyName}}

例:


{{(Collectionstatus | filter:{Value:dt.Status})[0].KeyName}}

-要么-


句法:


ng-bind="(input | filter)"

例:


ng-bind="(Collectionstatus | filter:{Value:dt.Status})[0].KeyName"


查看完整回答
反對 回復 2019-12-16
  • 4 回答
  • 0 關注
  • 848 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號