Cómo solucionar Angular Can't bind to 'data-...' since it isn't a known property of ...

Problema

Al compilar tu aplicación Angular, ves un error como este:

angular_error_output.txt
✘ [ERROR] NG8002: Can't bind to 'data-sensor' since it isn't a known property of 'div'. [plugin angular-compiler]

    src/app/my-component/my-component.component.html:107:39:
      107 │ ...                <div class="sensor" [data-sensor]="sensor | json">
          ╵                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Error occurs in the template of component NoxecoDepolMeasurementDisplayComponent.

    src/app/my-component/my-component.component.ts:31:17:
      31 │     templateUrl: './my-component.component.html',
         ╵                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Solución

Este error ocurre cuando intentas vincular una propiedad que Angular no conoce.

Este es un atributo data-... así que Angular no necesita conocerlo específicamente. Pero para evitar tropezar con el type checker, usa attr.data-sensor en su lugar:

my-component.component.html
<div class="sensor" [attr.data-sensor]="sensor | json">

De esta manera, Angular sabe que esto es un attribute binding y no un property binding.


Echa un vistazo a artículos similares por categoría: Angular Typescript