javascript - 在 Angular 6 的组件中访问 *ngFor last
问题描述
在角度 6 中,如果设置了最后一个值,我想访问 *ngFor last 值,因为我想操作
例如
<li [ngClass]="list.mydata==1?'replies a':'sent a'" *ngFor="let list of chatlist; let last=last;">
<span [last]="last"></span>
<img src="{{list.profile_img}}" alt="" />
<div *ngIf="list.sender_type==0">
<p>{{list.message}}{{last}}</p>
</div>
<div *ngIf="list.sender_type==1">
<p style="background-color: burlywood;">{{list.message}}</p>
</div>
</li>
我想做的是 [(myvar)]=last 代替 let last=last 我想绑定最后一个变量,所以我可以访问它是否在其组件中设置。
解决方案
您可以创建自定义指令:
import { Directive, Output, EventEmitter, Input } from '@angular/core';
@Directive({
selector: '[onCreate]'
})
export class OnCreate {
@Output() onCreate: EventEmitter<any> = new EventEmitter<any>();
constructor() {}
ngOnInit() {
this.onCreate.emit('dummy');
}
}
然后您可以*ngFor
在您的组件中使用它来调用该方法:
<li [ngClass]="list.mydata==1?'replies a':'sent a'" *ngFor="let list of chatlist; let last=last;">
<span (onCreate)="onCreate(last)"></span>
<img src="{{list.profile_img}}" alt="" />
<div *ngIf="list.sender_type==0">
<p>{{list.message}}{{last}}</p>
</div>
<div *ngIf="list.sender_type==1">
<p style="background-color: burlywood;">{{list.message}}</p>
</div>
</li>
然后在您的组件中:
myvar: boolean = false;
onCreate(last) {
this.myvar = last;
}
结帐此演示。
推荐阅读
- sublimetext4 - 如何只为一个文件 ST4 设置自动完成?
- logging - 日志基础 2 序言
- c++20 - PPL 并发和 co_await 导致 lambda 捕获变量在挂起时超出范围
- ruby - Capybara - have_css 在不应该匹配空字符串时匹配
- reactjs - 如何从 Amplify-React 调用现有的 Lambda 函数?
- php - 如何使用 Inertia JS 在 Laravel 中默认编辑或删除身份验证的 URL?
- firebase - 上传符号成功后 Firebase 缺少 dSYM
- excel - 对命名范围之外的单元格进行更改时出现 VBA Excel 运行时错误“1004”
- jquery - 当有人滚动到 ID 时开始编号计数器 JQuery 动画
- terraform - Terraform init 报告无法通过 Github Actions 查询提供程序包