【发布时间】:2020-09-30 15:19:37
【问题描述】:
我做了一个自定义选择,它隐藏了选择并在下拉菜单中选择一个项目。
但我无法将从下拉列表中选择的项目绑定到我选择的 html 元素。
自定义组件html
<div class="select">
<select class="select-hidden" [(ngModel)]="selectedOption">
<option *ngFor="let option of data" [value]="option.key">{{option.value}}</option>
</select>
<div class="select-styled" (click)="enableToggle()" [ngClass]="{'active' : toggle}">
{{selectedOption.value}}
</div>
<ul class="select-options" [ngClass]="{'block' : toggle}">
<li (click)="select(option)" *ngFor="let option of data" >{{option.value}}</li>
</ul>
</div>
自定义组件 TS
import {Component, OnInit, Input} from '@angular/core';
export interface Option {
key: number;
value: string;
}
@Component({
selector: 'alta-select',
templateUrl: './alta-select.component.html',
styleUrls: ['./alta-select.component.scss'],
host: { 'class': 'alta-select' },
})
export class AltaSelectComponent implements OnInit {
@Input() data: Option[] = [];
toggle = false;
selectedOption: Option;
enableToggle = () => this.toggle = !this.toggle;
select = (actualOption) => {
this.enableToggle();
this.selectedOption = actualOption;
}
ngOnInit(): void{
this.selectedOption = this.data[0];
}
}
您如何调用该组件((更改)不起作用,因为选择永远不会改变值,只有下拉列表会改变,这就是我要绑定的值
<alta-select [data]="options" (change)="changeTest($event)"></alta-select>
【问题讨论】:
标签: angular data-binding selectedvalue