JSON 배열이 있고 일치 기준에 따라 일부 요소를 필터링하고 싶습니다.
{{myJsonArray | 필터 : {myKey : myValue}}}
AngularJS의 인라인 필터의 문제점은 제공된 키의 전체 값을 비교하지 않고 대신 배열 값의 일부를 비교한다는 것입니다.
HTML 내에서 사용할 수있는 인라인 필터에 대한 다른 대안이 없습니다.
//My Json Array
$scope.myJsonArray = [
{ id : 1, myKey : "5" },
{ id : 2, myKey : "10" },
{ id : 3, myKey : "15" },
{ id : 4, myKey : "20" }
];
{{ (myJsonArray | filter : { myKey : 1 }).length }}
myKey에 제공된 값이 배열 내의 Json 개체에 존재하지 않기 때문에 출력이 0 인 것을 제외하고는
그러나 실제 출력은 2로 나타납니다.
그 이유는 angularjs 필터가 제공된 값 1을 10 및 15와 비교하고 이러한 키에 1이 존재하므로 true를 반환하기 때문입니다.
필터가 키를 값의 일부가 아닌 단일 완전한 값으로 비교하기를 원합니다.
다음은 작동하는 것입니다 : https://plnkr.co/edit/a9LR7lWpgluzufUZTzUF?p=preview
당신은 엄격한 평등을 기대하고 있으므로 아래 솔루션을 사용하십시오.
{{ (myJsonArray | filter : { myKey : '15' }:true).length }}
엄격한 비교를 지정하는 데 사용되는 끝에있는 : true를보십시오.
{ myKey : '15' }:true
https://code.angularjs.org/1.6.10/docs/api/ng/filter/filter를 참조 하고 문서에서 비교기 (세 번째 인수)를 확인하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다