Angular 角度动态过滤器占位符/回退文本?

Angular 角度动态过滤器占位符/回退文本?,angular,filter,filtering,fallback,Angular,Filter,Filtering,Fallback,我正在尝试为动态筛选器创建占位符文本回退,但无法使其正常工作,并且不确定是否确实可行 过滤代码为: *ngFor="let example of scale.examples | filter:{type: 'solo'} 如果过滤器类型不匹配,我希望能够指定占位符/回退文本。您几乎可以在任何地方应用管道。所以你可以这样做: <div *ngIf="(scale.examples | filter:{ 'type': 'solo' }).length === 0">No Value

我正在尝试为动态筛选器创建占位符文本回退,但无法使其正常工作,并且不确定是否确实可行

过滤代码为:

*ngFor="let example of scale.examples | filter:{type: 'solo'}

如果过滤器类型不匹配,我希望能够指定占位符/回退文本。

您几乎可以在任何地方应用管道。所以你可以这样做:

<div *ngIf="(scale.examples | filter:{ 'type': 'solo' }).length === 0">No Values</div>
<div *ngFor="let example of scale.examples | filter:{ 'type': 'solo' }">
   {{example.value}} 
</div>
无值
{{example.value}}
这是一个正在工作的Plunker:

更新 如果不想让数组排序两次,可以使用新的ngIf-else语法:

<div *ngIf="(myArr | filter:{ 'type': 'triple' }); let filteredArr" style="color: blue;">
  <div *ngIf="filteredArr.length === 0">No Results</div>
  <div *ngFor="let myObj of filteredArr" style="color: blue;">
    {{myObj.value}} 
  </div>
</div>

没有结果
{{myObj.value}
这是一个正在工作的Plunker:


如果您希望它更优雅,那么最好在组件端对阵列进行排序,然后使用它。

您所说的回退到底是什么意思?你是说如果过滤器返回0个结果,那么你想显示一些占位符文本吗?是AngularJS还是AngularJS?你的标题是AngularJS,但代码是AngularJS!!是如果筛选器返回零结果,则显示一些占位符文本。这是Angular 4,我在爱奥尼亚3应用程序中使用它。谢谢。谢谢,这很有效(我已经实现了),但是我想知道是否有更干净的方法可以做到这一点?我也添加了另一种方法。谢谢,非常感谢。