source

Angularjs 필터가 null이 아닙니다.

manycodes 2023. 3. 22. 21:42
반응형

Angularjs 필터가 null이 아닙니다.

null이 아닌 특정 속성을 가진 항목을 필터링하려고 합니다. 따라서 다음을 수행합니다.

var details = [{name:'Bill', shortDescription: null}, {name:'Sally', shortDescription: 'A girl'}]

1리만 보여드리고 싶은데 샐리용이에요이것은 내가 시도했지만 성공하지 못했다.

<ul>
<li ng-repeat="detail in details | filter:{shortDescription:'!'}">
<p>{{detail.shortDescription}}</p>
</li>
</ul>

커스텀 필터를 작성하지 않고 이 작업을 수행할 수 있는 방법을 알고 계십니까?그렇다고 해도 커스텀 필터는 어떻게 되어 있을까요?

각도 > = 1.3.16 최신 버전(쓰기/업데이트 시 1.5.5) 사용''(빈 문자열)(또는'!!'동작하고 있다)

<ul>
    <li ng-repeat="detail in details | filter:{shortDescription: ''}">
        <p>{{detail.shortDescription}}</p>
    </li>
</ul>

예: http://jsfiddle.net/TheSharpieOne/1mnachk6/


각도 > = 1.3.6 및 <= 1.3.15 사용'!null'

<ul>
    <li ng-repeat="detail in details | filter:{shortDescription: '!null'}">
        <p>{{detail.shortDescription}}</p>
    </li>
</ul>

예: http://jsfiddle.net/TheSharpieOne/4wxs67yv/


각도 > = 1.2 및 <=1.3.5 사용''(빈 문자열)(또는'!!'동작하고 있다)

<ul>
    <li ng-repeat="detail in details | filter:{shortDescription: ''}">
        <p>{{detail.shortDescription}}</p>
    </li>
</ul>

예: http://jsfiddle.net/TheSharpieOne/ovsqf17n/


각도 1.2 미만'!!'

<ul>
    <li ng-repeat="detail in details | filter:{shortDescription: '!!'}">
        <p>{{detail.shortDescription}}</p>
    </li>
</ul>

예: http://jsfiddle.net/TheSharpieOne/RGEdc/


전반적으로.'!!'는 최적의 지원을 제공하지만 (빈 문자열)을 권장합니다.

https://github.com/angular/angular.js/issues/11573 for Angular > = 1.4에 따르면 null/module을 제외한 모든 원시와 일치하는 "를 사용할 것을 권장합니다.

<ul>
    <li ng-repeat="detail in details | filter:{shortDescription: ''}">
        <p>{{detail.shortDescription}}</p>
    </li>
</ul>

이게 읽기 쉬울 것 같아

 <ul>
    <li ng-repeat="detail in details" ng-if="detail.shortDescription">
        <p>{{detail.shortDescription}}</p>
    </li>
 </ul>

빈따옴표솔루션을사용하려면비교기를기본값으로유지해야합니다.false컨트롤러 필터에 true를 삽입하는 데 익숙할 것입니다.

const myAssessments = 
       this.filterFilter(this.assessments, {userId: this.user.id}, true);

그런 종류의 엄격한 필터는 최종 필터가 없으면 작동하지 않을 것이다.true그러나 null이 아닌 체크가 기능하려면 true를 드롭하거나 false로 해야 합니다.

const activeAndHistoric = 
      this.filterFilter(filteredAssessments, {historicYear: ''}, false);

언급URL : https://stackoverflow.com/questions/18644412/angularjs-filter-not-null

반응형