【发布时间】:2018-04-03 15:07:46
【问题描述】:
我有一组称为报告的数据,其中包含一组网络 (report.networks)。在我返回之前,我有 model.ts 来操作网络数组。我做了一个 ngFor 来遍历网络数据以显示工作正常的细节。但是,在 ngFor 中添加 matToolTips 不会显示。
component.html
<span matTooltip="Tooltip Works">Tooltip Works</span>
<div *ngFor="let network of report.networks">
<span matTooltip="Tooltip Does NOT work!">Tooltip Does NOT work</span>
</div>
component.ts
import { Report } from './../../core/models/report/report.model';
@Component({
selector: 'app-report-detail',
templateUrl: './report-detail.component.html',
styleUrls: ['./report-detail.component.scss']
})
export class ReportDetailComponent implements OnInit {
report: Report;
constructor(private route: ActivatedRoute) { }
ngOnInit() {
this.report = this.route.snapshot.data.report;
console.log(this.report);
}
}
report.model.ts
export class Report {
networks?: any = null;
constructor(data?: Report) {
if (data) {
this.deserialize(data);
}
}
private deserialize(data: Report) {
const keys = Object.keys(this);
for (const key of keys) {
if (data.hasOwnProperty(key)) {
this[key] = data[key];
}
}
}
get networks() {
let n = this.networks;
//some manipulation
return n
}
}
【问题讨论】:
-
你能检查你的控制台是否有关于你的 ngFor 的错误,因为它似乎在这里工作得很好stackblitz.com/edit/angular-dsm5ks
-
@PierreMallet 控制台中没有错误但显然 report.networks 是一个函数,这就是为什么它不起作用检查 github.com/angular/material2/issues/10039 但我不知道这一点,因为报告来自我调用的 model.ts 文件数据数组。
-
我经常这样做,因为我需要在返回数据之前对其进行操作,我在模型文件中完成所有这些。