【问题标题】:Angular "include" for Empty results空结果的角度“包含”
【发布时间】:2023-04-04 05:25:01
【问题描述】:

我想显示一个 HTML

在 ngFor 循环中仅标记 1 次,其中 ngIf 条件为 Empty 结果。

<div *ngFor="let ndata of newsData; let i= index" (click)="redirect(ndata?.url)">
      <div class="news-cont" *ngIf="ndata.title.toLowerCase().includes(searchParam.toLowerCase())">
       <div class="row">
         <div class="col-md-2">
           <img class="m-img" src="{{ndata?.imageurl}}">
         </div>
         <div class="col-md-10">
           <h5> <img class="ic-img" src="{{ndata?.source_info?.img}}"> {{ndata?.source_info?.name}}</h5>
           <h4> {{ndata?.title}}</h4>
           <h6><i class="pe pe-7s-clock"></i> {{ndata?.published_on * 1000 | date:'HH:mm | yyyy-MMM-dd'}} </h6>
           <hr>
           <p [innerHTML]="ndata?.body">  </p>
           <p><i class="pe pe-7s-ribbon"></i>  <span class="categories-tag">Catergories <span>{{ndata?.categories}}</span></span> </p>
         </div>
       </div>
      </div>
        <p ANYCONDITION > No Results</p>
      </div>

我已经尝试过其他条件,但 for 循环会为每个条目迭代它。 期待一个好的解决方案。

【问题讨论】:

  • 你能分享newsDatasearchParam吗?
  • 更好的方法是在您的.ts 文件中过滤newsData。然后你可以避免在html中使用ngFor
  • 它是一个输入

标签: angular ngfor angular-ng-if


【解决方案1】:

你不能破坏 *ngFor。

你必须选择:

  • 在代码隐藏中过滤 newData
  • 使用管道

【讨论】:

    【解决方案2】:

    &lt;ng-template&gt;包裹:

    <ng-template [ngIf]="something.length > 0" [ngIfElse]="noDataTemplate">
      <div *ngFor="let ndata of newsData; let i= index" (click)="ndata && redirect(ndata.url)">
        <!-- your code here -->
      </div>
    </ng-template>
    
    <ng-template #noDataTemplate>
      <div>No data to display</div>
    </ng-template>
    

    这种方法将清楚地确定在空数据和非空数据的情况下应该做什么。

    【讨论】:

      【解决方案3】:

      请尝试newsData.filter(a=&gt;a.title.toLowerCase().includes(searchParam.toLowerCase()) &gt; -1)

      所以你的html应该是这样的

      <div *ngFor="let ndata of newsData.filter(a=>a.title.toLowerCase().includes(searchParam.toLowerCase()) > -1); let i= index" (click)="redirect(ndata?.url)">
         <div class="news-cont">
             <div class="row">
               <div class="col-md-2">
                 <img class="m-img" src="{{ndata?.imageurl}}">
               </div>
               <div class="col-md-10">
                 <h5> <img class="ic-img" src="{{ndata?.source_info?.img}}"> {{ndata?.source_info?.name}}</h5>
                 <h4> {{ndata?.title}}</h4>
                 <h6><i class="pe pe-7s-clock"></i> {{ndata?.published_on * 1000 | date:'HH:mm | yyyy-MMM-dd'}} </h6>
                 <hr>
                 <p [innerHTML]="ndata?.body">  </p>
                 <p><i class="pe pe-7s-ribbon"></i>  <span class="categories-tag">Catergories <span>{{ndata?.categories}}</span></span> </p>
               </div>
             </div>
         </div>
         <p ANYCONDITION > No Results</p>
      </div>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-01
        • 1970-01-01
        • 2012-06-12
        • 2022-01-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多