Невозможно привязать к «персонажу», так как это не известное свойство «tr» - PullRequest
0 голосов
/ 02 июня 2018

Импорт , переменная объявление выполнено.Все еще выдает ошибку.Также читайте старые выпуски на SO.

app.module.ts:

import { HotelTableComponent } from './hotel-table/hotel-table.component';
import { HotelTableRowComponent } from './hotel-table-row/hotel-table-row.component';

@NgModule({
  declarations: [
    AppComponent,
    HotelTableComponent,
    HotelTableRowComponent
  ],

hotel-table-row.component.ts:

@Component({
  selector: 'app-hotel-table-row',
  .....

export class HotelTableRowComponent implements OnInit {

  @Input() character: any;
  @Input() columns: string[];

hotel-table.component.html:

  <table>
    <tr>
      <th *ngFor="let c of columns">{{c}}</th>
    </tr>

    <tr *ngFor="let ch of characters | async" 
    app-hotel-table-row
    [character]="ch" 
    [columns]="columns">
    </tr>

  </table>

Консоль:

compiler.js:215 Uncaught Error: Template parse errors:
Can't bind to 'character' since it isn't a known property of 'tr'. ("
    <tr *ngFor="let ch of characters | async" 
    app-hotel-table-row
    [ERROR ->][character]="ch" 
    [columns]="columns">
    </tr>
"): ng:///AppModule/HotelTableComponent.html@7:4
Can't bind to 'columns' since it isn't a known property of 'tr'. ("
    app-hotel-table-row
    [character]="ch" 
    [ERROR ->][columns]="columns">
    </tr>

"): ng:///AppModule/HotelTableComponent.html@8:4

1 Ответ

0 голосов
/ 02 июня 2018

Чтобы связать ваш компонент с атрибутом, вам нужно поместить имя компонента в квадратные скобки, потому что селектор компонента является фактическим селектором CSS, а в CSS, чтобы выбрать атрибут по имени, вы должны поместить его в квадратные скобки.Попробуйте

selector: '[app-hotel-table-row]'

Проверьте этот пост для более подробной информации.

...