【发布时间】:2019-10-09 04:19:39
【问题描述】:
我遇到了一个奇怪的错误。我在一个项目中使用了 Angular 和 Firebase (Real time DB),即使你一切都正确呈现,我在日志上遇到错误。
VM368 OpenIdeasComponent.ngfactory.js:20 错误类型错误:无法读取 未定义的属性“名字” 在 Object.eval [as updateRenderer] (VM368 OpenIdeasComponent.ngfactory.js:36) 在 Object.debugUpdateRenderer [as updateRenderer] (VM346 vendor.js:57875) 在 checkAndUpdateView (VM346 vendor.js:57250) 在 callViewAction (VM346 vendor.js:57486) 在 execEmbeddedViewsAction (VM346 vendor.js:57449) 在 checkAndUpdateView (VM346 vendor.js:57246) 在 callViewAction (VM346 vendor.js:57486) 在 execComponentViewsAction (VM346 vendor.js:57428) 在 checkAndUpdateView (VM346 vendor.js:57251) 在 callViewAction (VM346 vendor.js:57486)
在数据库的 Features 集合下,我有一个作者 ID 的引用,该作者 ID 属于另一个名为 users 的集合。
在我的 FeaturesModel 构造函数中,我将 author?: AuthorModel 作为可选参数。
因此,当我启动我的组件时,我使用 forEach 从 users 集合 中获取 作者数据 并将该对象分配给功能对象。
代码如下:
ideas.ts
ngOnInit() {
this.fService.getFullFeature().subscribe(
data => {
this.features = data;
this.features.forEach( el => {
this.fService.getAuthor(el.userID).subscribe(
authorData => {
const a = {
id: authorData.id,
firstName: authorData.firstName,
lastName: authorData.lastName,
email: authorData.email
};
el.author = a;
},
(e) => { console.error(e); }
);
});
console.log(this.features);
}
);
}
html
<div class="container-fluid">
<div style="padding: 100px 0">
<div class="row">
<div class="container">
<h1 class="green header text-center">Feature Summary</h1>
</div>
</div>
<div class="row">
<div class="container">
<div class="row row-space link-effect" *ngFor="let idea of features" [routerLink]="['display/' + idea.id]" href="#modal" data-toggle="modal" data-target="#modal">
<div class="col-7">
<span class="open-ideas">{{ idea.title }}</span>
</div>
<div class="col-3 d-xs-none">
{{ idea.author.firstName }} {{ idea.author.lastName }}
</div>
<div class="col-2 d-xs-none">
<fa name="thumbs-up"></fa>
{{ idea.votes }}
</div>
</div>
</div>
</div>
</div>
</div>
所以,理论上,现在我有一个包含作者信息的对象,在我添加的 HTML 上 {{ feature.author.firstName }},它可以工作,但我收到此控制台错误。
我错过了什么?
谢谢!
【问题讨论】:
-
你也可以添加 Html sn-p 吗?
-
@TiagoSilva 肯定!给你!谢谢
-
el.author 与我们可以看到的idea.author 没有关联。错误是正确的。
标签: angular firebase-realtime-database angularfire2