Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 类型错误,角度5:无法读取属性';长度';_Angular_Html_Typescript - Fatal编程技术网

Angular 类型错误,角度5:无法读取属性';长度';

Angular 类型错误,角度5:无法读取属性';长度';,angular,html,typescript,Angular,Html,Typescript,但我还是犯了以下错误: 类型错误无法读取连接到html第9行的属性“length”: 试验 </mat-header-cell> <mat-cell fxFlex="40%" mat-cell *matCellDef="let row; let element" line 9: [ngStyle]="checkIfTrue(element.name) && {'background-color':'lightgreen'}">

但我还是犯了以下错误: 类型错误无法读取连接到html第9行的属性“length”:

试验

</mat-header-cell>
          <mat-cell fxFlex="40%" mat-cell *matCellDef="let row; let element"
  line 9:    [ngStyle]="checkIfTrue(element.name) && {'background-color':'lightgreen'}">
          <mat-checkbox [ngStyle]="checkIfTrue(element.name) && {'background-color':'white'}" (click)="$event.stopPropagation()" (change)="$event ? selection.toggle(row) : null" [checked]="selection.isSelected(row)">
          </mat-checkbox>
          </mat-cell>
  </ng-container> 

我想,所有的值都已初始化。

因为html中未定义element.name会导致错误,即使将其更改为element?.name,也无法工作。您可以执行以下操作:

<mat-cell *ngIf="element.name" fxFlex="40%" mat-cell *matCellDef="let row; let element"
[ngStyle]="checkIfTrue(element.name) && {'background-color':'lightgreen'}">


尝试
if(name)
而不是
if(name.length>0)
元素。模板中未定义name
。将其更改为
element?name
@ConnorsFan建议的技巧应该有效,并且您的错误不应该相同。或者您可以尝试
name?.length
我不确定它是否在
中工作。ts
或者您没有为
元素分配任何值,而
元素就在上面,您的代码正在从空白元素检索属性,或者您可以只在
if(name.length>0)上面写一个
控制台.log(name)
{
语句,然后您将获得传递给它的值。错误来自checkIfTrue(),即因为element.name是未定义的,它没有长度属性yyes。如果您没有传递某个内容,您将检查
未定义的.length
。未定义的没有长度属性。检查
If(name&&name.length)
@profiler@baao我知道,但即使我将其更改为element。?name它也会导致错误,因为它是methods参数。正如@baao所说,如果您在函数中选中
if(name&&name.length)
,则html不会连接到该错误@fatemefazlies。
<mat-cell *ngIf="element.name" fxFlex="40%" mat-cell *matCellDef="let row; let element"
[ngStyle]="checkIfTrue(element.name) && {'background-color':'lightgreen'}">