返回在ngOnInit上过滤的数据

时间:2017-12-08 17:38:41

标签: angular angular5

在我的component.ts中,我有一个从服务返回数据的函数,并将其保存到myPosts对象。该函数名为getData(); 我想要做的是在ngOnInit()上调用它之前最初按日期过滤getData。

所以最初我的桌子会显示所有的最后几个月'帖子。 然后我应该能够在另一个函数上更改日期并过滤不同的范围。

我的过滤功能在控制器上。 在获取数据后如何调用过滤器函数,以便最初在ngOnInit上过滤数据?

public class DecimalToBinary{

        public static void main(String a[]){
            System.out.println("Binary: ");
            System.out.println(Integer.toBinaryString(200));
            System.out.println("\nBinary: ");
            System.out.println(Integer.toBinaryString(500));
            System.out.println("\nBinary: ");
            System.out.println(Integer.toBinaryString(3400));
        }
}

2 个答案:

答案 0 :(得分:0)

创建一个方法来过滤然后分配数据,如下所示

filterByDate(myPosts){
  const monthAgo= moment().subtract(1, 'month');
   return myPosts.filter(item => moment(item.SubmittedDate).isAfter(monthAgo));
}

在onInit函数中,使用该函数

public getData() {
this.postsService.getAllPosts().subscribe(results => {
  this.myPosts= this.filterByDate(results['data']);    
});
}

答案 1 :(得分:0)

在构造函数中调用getData()方法,然后在ngOnInIt中使用过滤函数filterByDate()

export class SomeClass implements OnInIt {
      public getData() {
        this.postsService.getAllPosts().subscribe(results => {
          this.myPosts = this.filterByDate(results['data']);
        });            
      }
      public filterByDate(myPosts){
          const monthAgo = moment().subtract(1, 'month');
          return myPosts.filter(item =>  
          moment(item.SubmittedDate).isAfter(monthAgo));
        }
      constructor() {
        this.posts = this.getData();
      }
      ngOnInIt() {
        this.filterPosts = this.filterByDate(posts);
      }
    }