Development Tip

Angularjs 필터가 null이 아닙니다.

yourdevel 2020. 11. 3. 19:21
반응형

Angularjs 필터가 null이 아닙니다.


null이 아닌 특정 속성을 가진 항목을 필터링하려고합니다.

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

리 하나만 보여 드리고 싶습니다. 샐리를위한 것. 이것이 내가 성공하지 못한 것입니다.

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

사용자 지정 필터를 만들지 않고 어떻게 할 수 있는지 아십니까? 아니면 맞춤 필터는 어떻게 생겼을까 요?


Angular> = 1.4에 대해 https://github.com/angular/angular.js/issues/11573따르면 권장 사항은 null / undefined를 제외한 모든 기본 요소와 일치하는 ''를 사용하는 것입니다.

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

Angular> = 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/


Angular> = 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/


전반적으로 '!!'최상의 지원을 제공하지만 ''(빈 문자열)이 권장되며이를위한 것입니다 .


읽기가 더 쉽다고 생각합니다

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

빈 따옴표 솔루션을 사용하려면 비교기를 기본값 인으로 두어야합니다 false. 다음과 같이 컨트롤러 필터에 사실을 입력하는 데 익숙 할 수 있습니다.

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

이러한 유형의 엄격한 필터는 final true. 그러나 null이 아닌 검사가 작동하려면 true를 삭제하거나 false로 만들어야합니다.

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

참고URL : https://stackoverflow.com/questions/18644412/angularjs-filter-not-null

반응형