Ant*_*sss 5 intellij-idea angular
有像这样的标记
<mat-cell *matCellDef="let request">
<a [href]="request.url" target="_blank">{{request.requestId}}</a>
</mat-cell>
Run Code Online (Sandbox Code Playgroud)
我可以以某种方式键入IDE的请求类型Request吗?我在这里使用IntelliJ。
请注意,我这里使用的是Angular Material表,因此request在此处声明组件不是一个选择,因为它纯粹是模板变量。它包含在每次行迭代时由组件本身内部提供的行数据。
知道为什么不推荐使用它,但是可能是因为它看起来像无效的标记-很好,它是MatDataTable组件中使用的完全有效的标记。
小智 6
作为
tableDataSource: MatTableDataSource<ToDoInterface>;
Run Code Online (Sandbox Code Playgroud)
不输入模型,
这个:
<ng-container matColumnDef="toDo">
<th mat-header-cell *matHeaderCellDef mat-sort-header>ToDo</th>
<td mat-cell *matCellDef="let model">
<ng-container *ngIf="assertItemType(model) as toDoModel">
{{toDoModel.toDo}}
</ng-container>
</td>
</ng-container>
Run Code Online (Sandbox Code Playgroud)
在哪里:
assertItemType(item: ToDoInterface): ToDoInterface {
return item;
}
Run Code Online (Sandbox Code Playgroud)
作品。
但不确定这是否是最好的方法
SrA*_*Axi -3
现在我终于明白了这个问题(在OP编辑之后)。
声明时,您不能在模板中指定类型*matCellDef="let request",但是,该局部变量应该已经在您的组件中键入。
当使用 AM Table 时,我们会有这样的东西,对吧?
<mat-table [dataSource]="dataSource">
<ng-container matColumnDef="name">
<mat-header-cell *matHeaderCellDef> Name </mat-header-cell>
<mat-cell *matCellDef="let user"> {{user.name}} </mat-cell>
</ng-container>
</mat-table>
Run Code Online (Sandbox Code Playgroud)
我们不能输入局部user变量,但可以输入 dataSource.
所以,想象一下我们有这个界面:
export interface User {
name: string;
email: string;
}
Run Code Online (Sandbox Code Playgroud)
我们dataSource是用户的集合。然后我们会这样输入:
dataSource: User[] = this.getUsers();
Run Code Online (Sandbox Code Playgroud)
现在我们告诉编译器 的每个元素的dataSource类型都是User。
| 归档时间: |
|
| 查看次数: |
466 次 |
| 最近记录: |