具有过滤器初始值的Angular2 * ngFor下拉列为空

时间:2017-06-09 13:43:43

标签: angular angular2-forms angular2-pipe

嗨,我正在创建两个下拉列表用于显示月份,另一个用于显示日期。当用户选择月份时,日期下拉列表会根据哪个月更改为30或31。我使用自定义过滤器管道应用于日下拉选项实现此目的。但是,当用户选择月份时,初始日期下拉选项为空。我在下面给出了我的代码

月DropDown:

 <option *range="['month']; let num">{{num}}</option>

注意:

  

* range是我自己的显示月选项指令,如* ngFor

显示为

<option>Jan</option>

<option>Feb</option> .........

Day DropDown:

&#13;
&#13;
 <select formControlName="day" >
     <option>Select Day</option> 
     <option *ngFor="let number of calendar |      dayFilter:register.controls['dob'].controls['month'].value" >{{number.day}}</option>
</select>
&#13;
&#13;
&#13;

DayFilter:

当用户选择月份时,

我的自定义过滤器用于日期过滤:

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

@Pipe({
    name : 'dayFilter'
})
export class DayFilterPipe implements PipeTransform {
    transform(value:any, filter: any): any{
     var result;
      if(filter === 'April' || filter === 'june' || filter === 'september' || filter === 'november' ){     
        for(const item of value)
        {             
           result = value.filter(items=> items['day']< 31);
        }
               return result;
        }
        return value;
    }
}
&#13;
&#13;
&#13;

问题是:

  

当页面加载时,它可以正常工作,默认下拉选择选项是选择日。

     

问题在于我选择像四月这样的月份   当天下拉列表为空而不是选择日期。   enter image description here

当页面加载时:[它工作正常] [查看月份和日期] 当用户选择April the Day下拉列表为空时: enter image description here

0 个答案:

没有答案