所以我有这个超奇怪的场景......
一周前我离开我的应用程序工作得很好,今天又开始工作,意识到我的下拉菜单不再工作了......
我有超级简单的组件:
import {Component, Input} from '@angular/core';
import {Card} from "../../entities/Card";
@Component({
selector: 'card-details',
templateUrl: './app/components/card-details/CardDetails.html',
})
export class CardDetailsComponent {
@Input() card: Card;
constructor() {}
}
HTML:
<template #cardDetails>
<label>{{card.cardNumber}}</label>
<br/>
<label>{{card.cardNetwork}}</label>
<br/>
<label>{{card.type}}</label>
</template>
<button class="dropdown-item" placement="right" [ngbTooltip]="cardDetails">
{{card.cardName}}
</button>
以及父组件的相关html代码:
<div ngbDropdown class="d-inline-block">
<button class="btn btn-outline-primary" id="dropdownMenu" ngbDropdownToggle>Choose a card..</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenu">
<card-details *ngFor="let card of cards; let i = index" [card]="card" (click)="selectCard(i)"></card-details>
</div>
</div>
目前我收到一条错误消息,说它无法读取卡的属性,cannot read property cardName of undefined
.
感觉我必须再次提及它,我在代码中进行了字面更改 - 没有 - 下拉菜单显示所有细节非常好,一周后再次运行它。
有任何想法吗?
提前感谢所有帮助,如果缺少某些内容,请告诉我
编辑
可能值得注意的是,console.log(JSON.stringify(this.card)
在ngOnInit
它上面放置一个充满数据的卡片。所以它填充了来自数据库的正确数据,但仍然产生这个错误。
编辑2
此外,检查 HTML 元素我可以看到正好有两个card-details
包含正确的名称......那么这里有什么问题?:O
更新
同样,在其中找不到任何逻辑->我使用以下命令对其进行了初始化:
let defaultCard: Card = new Card();
defaultCard.cardName = "default";
defaultCard.cardNetwork = "whatever";
defaultCard.cardNumber = 1564987;
defaultCard.type = "Debit";
ctor
现在and中的日志ngOnInit
:
ctor
{"cardName":"default","cardNetwork":"whatever","cardNumber":1564987,"type":"Debit"}
ctor
{"cardName":"default","cardNetwork":"whatever","cardNumber":1564987,"type":"Debit"}
init
{"cardNumber":208461269,"cardName":"Magic Card","cardNetwork":"American Express","type":"Credit"}
init
{"cardNumber":220319960,"cardName":"Men Card","cardNetwork":"Visa","type":"Debit"}
拜托,任何见解都会对我有很大帮助!