J'essaie de mettre en œuvre le Table with expandable rows
de https://material.angular.io/components/table/examples mais j'obtiens cette erreur:
There can only be one default row without a when predicate function.
Cette erreur vient du fait que j'ai deux <tr mat-row ...
, les deux sans prédicat when (comme dans l'exemple). Si j'en enlève une, l'erreur disparaît.
De ma propre enquête, j'ai trouvé que cette fonctionnalité est nouvelle dans Material. Je suis passé à @ angular/material @ latest et à @ angular/cdk @ latest et j'ai toujours l'erreur.
Est-ce que quelqu'un sait ce que je dois faire pour implémenter le tableau comme dans l'exemple de la documentation? https://material.angular.io/components/table/examples
Mes versions:
Angular CLI: 6.0.8
Node: 8.11.2
OS: win32 x64
Angular: 6.0.4
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.6.8
@angular-devkit/build-angular 0.6.8
@angular-devkit/build-optimizer 0.6.8
@angular-devkit/core 0.6.8
@angular-devkit/schematics 0.6.8
@angular/cdk 6.3.1
@angular/cli 6.0.8
@angular/flex-layout 6.0.0-beta.16
@angular/material 6.3.1
@ngtools/webpack 6.0.8
@schematics/angular 0.6.8
@schematics/update 0.6.8
rxjs 6.2.0
TypeScript 2.7.2
webpack 4.8.3
Il se trouve que je manquais de la directive multiTemplateDataRows
de <table>
tag:
<table mat-table [dataSource]="licenses" multiTemplateDataRows ...
Cette erreur peut également apparaître si la fonction de votre prédicat when
n'est pas définie. Donc si vous avez
<mat-tree-node *matTreeNodeDef="let node; when: hasChild">
et hasChild
n'est pas défini, vous pourriez obtenir cette erreur.
j'ai eu le même problème. J'ai mis à jour @ angular/cdk & @ angular/material à 6.4.7. Et tout fonctionne bien. Bien sûr, vous avez également besoin de multiTemplateDataRows attr