Angular6 Material6错误:"只有一个默认行没有when谓词函数."

GoT*_*oTo 23 angular6 angular-material-6

我正在尝试Table with expandable rowshttps://material.angular.io/components/table/examples实现,但是我收到此错误:

There can only be one default row without a when predicate function.

这个错误来自于我有两个<tr mat-row ...,都没有when谓词(如例子).如果我删除一个,则错误消失.

根据我自己的调查,我发现此功能对于Material来说是新功能.我升级到@ angular/material @ latest和@ angular/cdk @ latest,我仍然遇到错误.

有没有人知道我必须做什么来实现表,如文档中的示例?https://material.angular.io/components/table/examples

我的版本:

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
Run Code Online (Sandbox Code Playgroud)

GoT*_*oTo 74

事实证明我错过multiTemplateDataRows<table>标签的指令:

<table mat-table [dataSource]="licenses" multiTemplateDataRows ...
Run Code Online (Sandbox Code Playgroud)


ada*_*ort 11

如果when谓词中的函数未定义,也可能会出现此错误。所以如果你有

<mat-tree-node *matTreeNodeDef="let node; when: hasChild">
Run Code Online (Sandbox Code Playgroud)

并且hasChild未定义,您可能会收到该错误。