【发布时间】:2020-08-25 10:38:57
【问题描述】:
我正在关注有关如何创建下拉菜单并让下拉菜单显示一组元素的基本角度教程,但我遇到了如何单独获取每个选项的值的问题。我正在尝试根据下拉列表中的选定选项有条件地呈现标题。我的下拉列表中列出了我的所有三个术语,但始终显示所有三个标题。
术语:
export class Term {
id: number;
name: string;
}
打字稿:
import { Term } from './term';
import { Component } from '@angular/core';
@Component({
selector: 'app-class-search',
templateUrl: './class-search.component.html',
styleUrls: ['./class-search.component.css']
})
export class ClassSearchComponent {
public terms: Term[] = [
{id: 1, name: 'Summer 2020'},
{id: 2, name: 'Fall 2020'},
{id: 3, name: 'Spring 2021'}
];
public selectedTerm: Term = this.terms[0];
onSelect(termId) {
this.selectedTerm = null;
for (var i = 0; i < this.terms.length; i++) {
if (this.terms[i].id === termId) {
this.selectedTerm = this.terms[i];
}
}
}
}
HTML:
<div>
<div class="ui massive menu">
<select class="ui simple dropdown term" (change)="onSelect($event.target.value)">
<option value="" selected disabled hidden>Select Term</option>
<option *ngFor="let term of terms">{{term.name}}</option>
</select>
</div>
<div *ngFor="let term of terms">
<div *ngIf="this.selectedTerm.id === 1">
<h1 class="whichterm">{{this.term.name}}</h1>
</div>
<div *ngIf="this.selectedTerm.id === 2">
<h1 class="whichterm">{{this.term.name}}</h1>
</div>
<div *ngIf="this.selectedTerm.id === 3">
<h1 class="whichterm">{{this.term.name}}</h1>
</div>
</div>
</div>
【问题讨论】:
-
这里有很多错误...您应该先尝试遵循 Angular 教程(英雄之旅)。您正在使用旧式 for 循环,没有在选项标记内正确使用
*ngFor,在 HTML 中使用this(不要!),并在 HTML 末尾使用无用的*ngFor。 .. -
老实说,我只是想要一个简单的示例,说明如何绑定选择中的值以根据所选值显示标题,但我找不到类似的东西。
标签: angular