Итак, вы пытаетесь отрендерить HTML на основе некоторых параметров, верно? В Angular компоненты делают именно это, и вам не следует взламывать каналы для этого. Каналы предназначены для создания простых текстовых значений из данных, см. https://angular.io/guide/pipes
Так что просто возьмите параметры, которые вы передаете в свою трубу, создайте компонент вместо трубы, и передать эти параметры новому компоненту .
Кроме того, всякий раз, когда вы вручную создаете строку html, а затем добавляете ее в DOM через innerHtml
, вы неправильно используете angular, все точка angular, что вы явно не манипулируете DOM.
Обработчик щелчка не работает, потому что (click)="updateStatus()
не является стандартным HTML, и если вы передаете его с помощью innerHtml
, браузер не будет знать, о чем вы говорите. Этот синтаксис обработчика кликов работает только внутри шаблона angular, который вы можете иметь с компонентом.