У меня есть поле ввода, которое выбирает цвет.Цвет selectedColor должен исходить до родителя, но даже выход из дочернего процесса ничего не отображает.Я убрал палитру цветов, и это тоже ничего не меняет.
.parent
<app-settings-color-item (newColor)="getColorValue($event)" [setting]="config.background_color"></app-settings-color-item>
parent-component.ts
public getColorValue(selectedColor: Colors) {
if (selectedColor) {
this.selectedColor = selectedColor;
}
}
.child
<ng-container *ngIf="setting">
<li>
<input
[value]="setting.data.hex_code"
[cpPosition]="'center'"
[ngModel]="selectedColor"
[style.background]="setting.data.hex_code"
[(colorPicker)]="setting.data.hex_code"
[cpOKButton]="true"
(colorPickerChange)="selectedColor"
[cpOKButton]="true"
[cpSaveClickOutside]="false"
[cpOKButtonClass]="'update'"
(change)="selectColor(selectedColor)">
</li>
</ng-container>
.child-component.ts
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
import { Config } from 'src/app/config';
import { Colors } from '../colors';
@Component({
selector: 'app-settings-color-item',
templateUrl: './settings-color-item.component.html',
styleUrls: ['../settings.component.scss','./settings-color-item.component.scss']
})
export class SettingsColorItemComponent implements OnInit {
@Input()
setting: Config;
@Output()
private newColor = new EventEmitter<Colors>();
selectedColor: Colors;
constructor() { }
ngOnInit() {
}
public selectColor(){
if(this.selectedColor){
const selectedColor = this.selectedColor;
this.newColor.emit(selectedColor);
console.log(selectedColor);//doesn't log anything? :/
}
}
}
IСегодня весь день работали над дочерними генераторами событий, и единственное отличие состоит в том, что это элемент ввода, а не выпадающий список.Настройка аналогична другим компонентам и работает, но это не так.
У кого-нибудь есть идеи относительно того, почему это не работает?