Этот вопрос относится к синтаксически анонимным / функциям со стрелками / дополнительным / фабричным функциям DP:
У меня есть компонент, который встроен в HTML.
Компонент имеет событие щелчка, которое связано с функцией. Содержание этой функции зависит от другого компонента, который имеет ссылку на этот компонент.
Это компонент с событием click:
HTML:
<div (click)="doSomething()">Content.....</div> \\ Should it be with a brackets ?
В компоненте я просто хочу определить сигнатуру функции:
@Component({
selector: 'app-embedded'
})
export class className
{
constructor() { }
ngOnInit() { }
doSomething:(booleanparams: boolean) => any; //The function get a boolean parameter as input and return void or any
}
Теперь этот компонент встроен:
<div >
<app-embedded #emb></app-embedded>
</div>
Это компонент контейнера встроенного компонента, который имеет ссылку на встроенный компонент:
@Component({
selector: 'app-container',
})
export class container
{
@ViewChild('emb') private emb: ElementRef;
booleanParam : booelan;
constructor()
{
emb.doSomething = containerFunction(true);
}
containerFunction(booleanParam : boolean)
{
// do something in this context
}
}
Идея состоит в том, что этот встроенный компонент встроен во многие другие контейнеры, и всякий раз, когда событие click вызывает триггер, должна выполняться функция, заданная в переменной функции doSomething.
Какие изменения в коде мне нужно сделать, чтобы добиться этого?