用户单击后在 ngFor 中过滤:Angular 6

普鲁德维·巴拉德瓦吉

这里只是一个简单的问题。我仍然是 angular 的新手,所以请。是的,我的视图页面看起来像这样。

在此处输入图片说明

最初,我正在使用所有必需的数据加载我的页面。现在,这里的问题是,当用户单击"OWNERS" 中的任何名称时,数据应该能够根据"user-click"进行过滤例如,如果用户点击“Krishna”,所有与“Krishna”相关联的活动都应该被过滤,并且应该能够显示在同一页面中。

我的 home.component.ts 页面看起来像这样。

import { CampaignService } from './../../../services/campaign.service';
import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {

  constructor(private campaignService : CampaignService ) { }


  Time;
  campaigns;
  

  ngOnInit(){

    setInterval(() => {  
      this.Time = Date.now()
    }, 1000);
   

    this.campaignService.CampaignsInfo()
    .subscribe(response=>{
      this.campaigns = response;
    });

  }
  
}

我的 home.component.html 看起来像这样:

<campaign-header></campaign-header>

<div class="container-fluid date-time sticky-top">
<div class="container">
 <form class="form-inline my-2 my-lg-0 d-flex justify-content-center radio" >
     <div class="" >
		<input type="radio" checked name="day"> Today
		</div>
		&nbsp;&nbsp;
		 <div class="float-left">
		<input type="radio"  name="day"> Commulative
		</div>
     <!-- <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>-->

    </form>
	<div class="d-flex justify-content-end" style="margin-top: -16px;"> 
   <span id="date_time"><i class="zmdi zmdi-calendar-check zmdi-hc-fw"></i> {{Time | date}} &nbsp; <i class="zmdi zmdi-time zmdi-hc-fw"></i> {{ Time | date:'mediumTime' }} </span> 
</div>
</div>
</div>
<br>
<!-- content -->
<div class="container">
    
    <div class="row">
        <div class="col-sm-12">
           
            <div class="card campaign border-top wrap">	
				
			
                <div class="card-body table-responsive">
                    <table class="table table-hover mb-0">
				
                        <thead>
                            <tr>
                                <th class="border-top-0">CAMPAIGN </th>
                                <th class="border-top-0">STATUS</th>
                                <th class="border-top-0">DIALED</th>                               
                                <th class="border-top-0">OWNERS</th>
                                <th class="border-top-0"> <span class="invisible">Action</span></th>
                                <!-- <button  mat-button color="primary" routerLink="/campaign-details">CampaignDetails</button> -->
                            </tr>
                        </thead>
			
                        <tbody>
                             
                            <tr *ngFor="let campaign of campaigns?.result">
                                <td><p>{{campaign.CampaignName}}</p>
									<small>{{campaign.DepartmentName}}</small>
								</td>
                                <td>
                                    <small class="text-info">Active</small>
                                </td>
                                <td>
								 <p>{{campaign.Dialed}} / <small>1500000</small></p>
									<div class="progress mt-2 w-75">
                                        <div class="progress-bar bg-info" role="progressbar" style="width: 90%;" aria-valuenow="90" aria-valuemin="0" aria-valuemax="100"></div>
                                    </div>
								</td>
                                
                                <td>
                                    <button class="badge badge-pill badge-secondary"  > {{ campaign.owners }} </button>
									</td>
                                <td class="ml-0 pl-0"><a routerLink="/campaign-details"><img src="../../assets/Images/next.png" class="next" /></a></td>
                            </tr>
                                
					   </tbody>
                    </table>
                </div>
            </div>
        </div>
</div>
<br>	
</div>	

我尝试为按钮编写 (click) ="someMethod(campaign.Name)" 并传递活动对象并尝试在 component.ts 页面中应用过滤器,但没有运气。任何帮助深表感谢。非常感谢提前。

PS:这是经过一些研究并在实施以下建议之后。

我尝试实现自定义管道,但是在所有者上单击事件后,出现以下错误。

在此处输入图片说明

有关信息:单击事件后我的管道调试值如下所示。在此处输入图片说明

我的烟斗看起来像这样。

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'filter'
})
export class FilterPipe implements PipeTransform {

  transform(values: any[], key: string, value: string): any[] {
    if (!values) {
        return [];
    }
    if (!value) {
        return values;
    }
    return values.filter(val =>{
      debugger;
      console.log(values);

      return val.includes(values);
    });
  }
}

我的点击事件和 html 如下所示:

filterByOwnr(val) {
  this.filter = val;

}
<tr *ngFor="let campaign of campaigns?.result | filter : 'OWNERS' : filter;">

  <td>
    <button class="badge badge-pill badge-secondary" (click)="filterByOwnr(campaign.owner)"> {{ campaign.owner}} </button>
  </td>

</tr>

时时

在您的自定义管道实现中,不应该是这一行:

return val.includes(values);

反而是这个?

return val.CampaignName.includes(value);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Angular2中过滤NgFor

来自分类Dev

Angular 2:ngFor完成后的回调

来自分类Dev

如何显示* ngFor中的单击元素使用Angular 2隐藏其他列表

来自分类Dev

(单击)与ngFor变量

来自分类Dev

Angular 6-过滤后单击表行将返回错误的值

来自分类Dev

如何在Angular 6中将ngSwitch与* ngFor一起使用

来自分类Dev

选择标签后,在ngFor列表中选择/单击第一项Angular 8

来自分类Dev

用户单击后,从生成的Listviews(jQuery Mobile)中获取文本

来自分类Dev

使用ngFor显示排序后的列表,而不对Angular2中的源进行排序

来自分类Dev

如何仅在用户在 ngFor Angular2 中单击的元素上显示错误消息

来自分类Dev

Angular 中 *ngFor 的递减索引

来自分类Dev

* div 类中的 Ngfor 不起作用 - Angular 6 和 Bootstrap

来自分类Dev

Angular 6-在相同组件的变量更改时动态更改 *ngFor 元素的 css 属性

来自分类Dev

在 Angular 6 服务中过滤 api 数据

来自分类Dev

Angular 6 - 如何使用 *ngFor 从表中动态创建的输入框中获取 component.ts 中的输入值?

来自分类Dev

Angular 6 + 为无序列表中的嵌套 ngFor 设置活动状态

来自分类Dev

Angular 5:单击单选按钮后 *ngFor 的数据发生变化

来自分类Dev

将活动类添加到嵌套的 ngFor Angular 6 中的元素

来自分类Dev

如何在 ngFor 中单击元素 html 以添加 css 类?

来自分类Dev

Angular 6 更新 *ngFor 数据,从下拉菜单中选择项目

来自分类Dev

在 Angular 6 中过滤用户而不创建自定义管道

来自分类Dev

Angular 6:存储在 *ngFor 中使用的值

来自分类Dev

Angular 6 - 使用 *ngFor 显示数据库中的数据

来自分类Dev

在 Angular 6 上为 *ngFor 内的输入类型复选框启用双向数据绑定

来自分类Dev

单击模板 Angular 6 中的按钮

来自分类Dev

在弹性搜索 v6 中过滤后的空聚合

来自分类Dev

ngFor Angular 6 中的 LINQ

来自分类Dev

Angular 6 从另一个 ngFor 向 ngFor 元素添加活动类

来自分类Dev

Angular 6+:从@input 在 ngFor 中传递数组名称

Related 相关文章

  1. 1

    在Angular2中过滤NgFor

  2. 2

    Angular 2:ngFor完成后的回调

  3. 3

    如何显示* ngFor中的单击元素使用Angular 2隐藏其他列表

  4. 4

    (单击)与ngFor变量

  5. 5

    Angular 6-过滤后单击表行将返回错误的值

  6. 6

    如何在Angular 6中将ngSwitch与* ngFor一起使用

  7. 7

    选择标签后,在ngFor列表中选择/单击第一项Angular 8

  8. 8

    用户单击后,从生成的Listviews(jQuery Mobile)中获取文本

  9. 9

    使用ngFor显示排序后的列表,而不对Angular2中的源进行排序

  10. 10

    如何仅在用户在 ngFor Angular2 中单击的元素上显示错误消息

  11. 11

    Angular 中 *ngFor 的递减索引

  12. 12

    * div 类中的 Ngfor 不起作用 - Angular 6 和 Bootstrap

  13. 13

    Angular 6-在相同组件的变量更改时动态更改 *ngFor 元素的 css 属性

  14. 14

    在 Angular 6 服务中过滤 api 数据

  15. 15

    Angular 6 - 如何使用 *ngFor 从表中动态创建的输入框中获取 component.ts 中的输入值?

  16. 16

    Angular 6 + 为无序列表中的嵌套 ngFor 设置活动状态

  17. 17

    Angular 5:单击单选按钮后 *ngFor 的数据发生变化

  18. 18

    将活动类添加到嵌套的 ngFor Angular 6 中的元素

  19. 19

    如何在 ngFor 中单击元素 html 以添加 css 类?

  20. 20

    Angular 6 更新 *ngFor 数据,从下拉菜单中选择项目

  21. 21

    在 Angular 6 中过滤用户而不创建自定义管道

  22. 22

    Angular 6:存储在 *ngFor 中使用的值

  23. 23

    Angular 6 - 使用 *ngFor 显示数据库中的数据

  24. 24

    在 Angular 6 上为 *ngFor 内的输入类型复选框启用双向数据绑定

  25. 25

    单击模板 Angular 6 中的按钮

  26. 26

    在弹性搜索 v6 中过滤后的空聚合

  27. 27

    ngFor Angular 6 中的 LINQ

  28. 28

    Angular 6 从另一个 ngFor 向 ngFor 元素添加活动类

  29. 29

    Angular 6+:从@input 在 ngFor 中传递数组名称

热门标签

归档