Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何从两个组件中选择数据”;选择";?_Angular - Fatal编程技术网

Angular 如何从两个组件中选择数据”;选择";?

Angular 如何从两个组件中选择数据”;选择";?,angular,Angular,有两个“选择”组件。第一个组件显示年份,第二个组件显示事件名称。显示年份的组件具有数据类型“number”(即数据以这种形式“2018”输出)。第二个组成部分包含事件名称,必须与年份一致(仅此处日期以“日期”格式显示,即2018-09-13)。因此,在选择年份时(从第一个组件“select”开始),第二个组件应显示与日期匹配的信息。我根本不知道怎么做。你能告诉我怎么实施吗 <div class="row"> <div class="col-md-6"> <

有两个“选择”组件。第一个组件显示年份,第二个组件显示事件名称。显示年份的组件具有数据类型“number”(即数据以这种形式“2018”输出)。第二个组成部分包含事件名称,必须与年份一致(仅此处日期以“日期”格式显示,即2018-09-13)。因此,在选择年份时(从第一个组件“select”开始),第二个组件应显示与日期匹配的信息。我根本不知道怎么做。你能告诉我怎么实施吗

<div class="row">
  <div class="col-md-6">
    <div class="pull-left">
      <label>Reporting period</label>
      <label for="favcity">
        <select id="favcity" name="select" >
          <option *ngFor="let year of years" [value]="year.years">
            {{year.years}}
          </option>
        </select>
      </label>
    </div>
  </div>
  <div class="col-md-6 ">
    <div class="pull-right">
      <label>Type of event</label>
      <label for="favcity">
        <select id="favcity" name="select"  >
          <option *ngFor="let typeEvent of typeEvents" [value]="typeEvent.name">
            {{typeEvent.name}}
          </option>
        </select>
     </label>
    </div>
  </div>
</div>

报告期
{{年.年}
事件类型
{{typeEvent.name}

我想您应该在第一个选择组件和ngModel中添加click事件来存储年份值

然后单击事件调用具有年份值的changeEventList函数。 然后,changeEventList函数用年份值过滤typeEvents

第二个组件仅显示过滤后的事件列表

我在你的代码上添加了一些伪代码和注释

<div class="row">
  <div class="col-md-6">
    <div class="pull-left">
      <label>Reporting period</label>
      <label for="favcity">
        <select id="favcity" name="select" (click)="changeEventList(selectedYear)" [(ngModel)]="selectedYear" >  // <= add year variable and click event when you choose any option values.
          <option *ngFor="let year of years" [value]="year.years">
            {{year.years}}
          </option>
        </select>
      </label>
    </div>
  </div>
  <div class="col-md-6 ">
    <div class="pull-right">
      <label>Type of event</label>
      <label for="favcity">
        <select id="favcity" name="select"  >
          <option *ngFor="let typeEvent of typeEvents" [value]="typeEvent.name">
            {{typeEvent.name}}
          </option>
        </select>
     </label>
    </div>
  </div>
</div>

在这种情况下,我认为我们应该使用(ngModelChange)事件来代替(click)事件

changeEventList(年){
//您可以根据需要筛选事件列表
}

报告期
//
changeEventList(year){
    this.typeEvents = originalTypeEventList.filter(event => event.value.indexof(year) !== -1 )
}