angular - 如何在 Angular 中的一个子组件中实现下拉?
问题描述
我有一个应用程序组件,它作为一个孩子有一个标题组件。我想在该标题组件中实现下拉列表。下拉列表将由颜色列表组成,并且将选择颜色,因此背景应成为该颜色。
知道如何实现吗?尤其是Material Ui?有任何想法吗?
解决方案
如何根据所选选项在不同组件中的 div 上设置背景颜色的示例。
请参阅Medium - 在 Angular 组件之间共享数据以了解 @Output 使用以将值传递给父级的说明。
AppHeader 组件 html:
<select (change)="updateSelectedStyle($event.target.value)">
<option *ngFor="let s of styles" [ngValue]="s">{{s}}</option>
</select>
</div>
AppHeader 组件:
export class MyComponent implements OnInit {
styles: string[] = [];
import { Component, Output, EventEmitter } from '@angular/core';
export class AppHeaderComponent {
@Output() updateStyleEvent = new EventEmitter<string>();
updateSelectedStyle(value) {
this.updateStyleEvent.emit(value)
}
ngOnInit()
{
this.styles = ['red','green'];
}
}
应用组件 CSS:
.red {background:#f00}
.green {background:#0f0}
应用组件:
export class AppComponent {
selectedStyle:string;
updateStyle($event) {
this.selectedStyle = $event
}
应用组件 html:
<div [ngClass]="selectedStyle"></div>
<app-header (updateStyleEvent)="updateStyle($event)"></app-header>
StackBlitz 中的工作示例(hello 组件 = app-header)
推荐阅读
- sql - 从SQL中的两个表中获取最小值?
- web-config - 带有 net Core 3.1 的 web.config 发布问题
- python - python上有没有用k最近邻法去除异常的方法?
- java - 没有内部类的 Java Timer 功能
- docker - 在 Vuex 中使用命名卷
- jupyter-notebook - 虚拟环境中的 Jupyter
- c# - 通过 REST API 返回 HttpClient 的响应
- python - 有没有办法在终端上对多个打印进行单元测试?
- java - 有没有办法在 Springboot 中进行提前编译?
- javascript - 来自谷歌图书 API 的数据在第二次点击事件后显示