Как я могу добавить элементы с функцией (click) в Angular для кода? - PullRequest
0 голосов
/ 28 февраля 2020

Я ищу способ добавления элементов в Angular для Typescript Code. Проблема в том, что эти элементы должны иметь функцию (щелчка), и я не знаю, сколько из этих элементов должно быть добавлено (например, для l oop с любым диапазоном должно быть любое количество элементов).

textausgabe.innerHTML += '<div (click)="caller()"'>click</div>';

Это создало элемент правильно, но если я нажму на него, ничего не произойдет.

Вы знаете способ решения моей проблемы, чем, пожалуйста, покажите мне, как:)

1 Ответ

0 голосов
/ 28 февраля 2020

Вы не должны делать это в angular. Добавьте массив в ваш файл ts и используйте от *ngFor до l oop поверх этого массива в вашем шаблоне. В вашем обработчике (click) вы можете просто добавить элемент в этот массив. *ngFor позаботится о создании этого элемента для вас.

шаблон. html

<div *ngFor="let element of elements" (click)="caller()">click</div>
<button (click)="appendElement()">Append Element</button>

component.ts

@Component({...})
export class MyComponent {
   public elements:Array<unknown> = [];

   public appendElement():void {
      this.elements = [...this.elements, this.elements.length + 1]; // Just append anything, since you are not using the values otherwise, appending a generic ID here
   }

   public caller():void {
      // Do whatever you want when your appended elements are clicked
   }
}

Здесь работает StackBlitz .

...