각도에서의 객체 속성으로 필터링하는 방법JS
Angular에서 사용자 지정 필터를 생성하려고 합니다.특정 속성 값을 기준으로 개체 목록을 필터링하는 JS.이 경우 "극성" 속성("긍정", "중립", "부정"의 가능한 값)으로 필터링합니다.
필터가 없는 작업 코드는 다음과 같습니다.
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) 스테이트먼트에서는 아무것도 출력되지 않습니다."polarity"의 객체 속성에 액세스하기 위해 올바른 매개 변수를 삽입하지 않은 것 같습니다.
좋은 생각 있어요?답변해 주셔서 대단히 감사합니다.
이 명령어를 사용하면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>
이 문서에는 완전한 해답이 기재되어 있습니다.어쨌든, 이 방법은 다음과 같습니다.
<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>
그$Deep Filter 및 Deep Filter의 특수 속성입니다.true위와 같이 정확하게 일치합니다.
또한 이를 통해 보다 역동적으로 만들 수도 있습니다.
<input name="filterByPolarity" data-ng-model="text.polarity"/>
그럼 넌 이렇게 되겠구나
<div class="tweet" data-ng-repeat="tweet in tweets | filter:text"></div>
이 필터는 물론 극성으로 필터링하는 데만 사용됩니다.
다음과 같은 컬렉션이 있습니다.
구문:
{{(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"
이거 드셔보세요.'이름'은 arr의 속성입니다.
repeat="item in (tagWordOptions | filter:{ name: $select.search } ) track by $index
언급URL : https://stackoverflow.com/questions/17793751/how-to-filter-by-object-property-in-angularjs
'programing' 카테고리의 다른 글
| angularjs에서와 같이 버튼을 사용하여 페이지를 탐색하는 간단한 방법이 있습니까? (0) | 2023.03.25 |
|---|---|
| Rails 3.2.11 및 RSpec을 사용한 원시 JSON 데이터 POST (0) | 2023.03.25 |
| DIV 요소가 TinyMCE 내에서 삭제되지 않도록 보호 (0) | 2023.03.25 |
| 반응 요소에 대한 클릭 이벤트 시뮬레이션 (0) | 2023.03.25 |
| 스프링 부트 프로젝트에서 휴지 상태 검증을 비활성화하는 방법 (0) | 2023.03.25 |
