【发布时间】:2020-04-17 03:19:26
【问题描述】:
我正在我的应用程序中创建一个功能来改变我在 Angular 中工具栏的颜色。
为此,我创建了一个具有颜色字符串参数的指令。
当我硬编码我想要的值时,该指令可以正常工作,
现在我想使用一个选择选项将值动态分配给指令。
我目前正在通过点击事件这样做。我的方法是从选项中收集我的值并将其分配给我的 toolBarColor 变量的值。
我通过检查发现我的方法成功地收集了值并将其分配给连接到我的指令的变量。
我也尝试过 [ngValue] 和 ngModel 路线,但还没有成功。
下面是我的代码。
<select class="form-control" (click)="colorSelect(colorChosen)" [(ngModel)]="toolbarColor">
<option *ngFor="let color of themeColors" value="{{color}}">{{color}}</option>
</select>
我的组件包含这个方法
colorSelect(color: string){
this.toolbarColor = color;
}
toolbar 只是一个空字符串变量。
指令代码就是这样。
import { Directive, AfterViewInit, Input, ElementRef } from '@angular/core';
@Directive({
selector: '[myColorPicker]'
})
export class ColorPickerDirective implements AfterViewInit {
@Input() myColorPicker: string;
constructor(private elRef: ElementRef) {
}
ngAfterViewInit(): void {
this.elRef.nativeElement.style.background = this.myColorPicker;
}
}
这是我工具栏中指令的实现
<div class="toolbar" role="banner" myColorPicker={{toolbarColor}}>
【问题讨论】:
-
您需要提供更多与指令相关的代码,能否为您的代码创建一个基本的 stackblitz 实例?
-
遗憾的是 stackblitz 在生成 repo 实例时遇到问题。说它缺少我的 package.json 文件,这是一个错误,因为它存在于 repo 中。我会将我的指令代码添加到初始问题中。
-
能否请您添加代码,您在模板中如何以及在何处使用此指令?
-
我刚刚插入。
标签: angular html-select angular-directive two-way-binding