作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有日期输入字段,如果我单击添加,它会在前一个字段下方显示相同的字段。现在我这样写我的 HTML,所以它给出了错误 TypeError: Cannot read property '0' of undefined
和 page doesn't open only.. 任何人都可以帮助我解决这个问题。
HTML:
<md-card *ngFor="let positionDetails of positions; let i = index">
<div>
<md-input-container>
<input mdInput type="text" name="positionDetails.position_start[i]" [ngModel]="positionDetails.position_start [i]| date:'dd/MM/yyyy'" (ngModelChange)="positionDetails.position_start[i] = $event" (focus)="openPosition()[i]" [readonly]="true">
</md-input-container>
<div *ngIf="showPosition">
<datepicker [(ngModel)]="positionstart" name="positionDetails.ddv[i]" [showWeeks]="false" [maxDate]="positionend" (selectionDone)="onPositionStart($event)"></datepicker>
</div>
</div>
</md-card>
TS:
this.positions = [{
"position_start":"",
}];
openPosition(i){
this.showPosition = true;
}
onPositionStart(event:any,i) {
console.log(event);
this.positionstart = event;
console.log(this.positionstart);
this.positionDetails.position_start = new Date(this.positionstart);
console.log(this.positionDetails.position_start);
this.showPosition = false;
}
最佳答案
你应该在你的 ngFor 中使用范围 positionDetails
。这将确保 ngFor 的每次迭代都是相互独立的。
<md-card *ngFor="let positionDetails of positions">
<div>
<md-input-container>
<input mdInput type="text" [ngModel]="positionDetails.position_start | date:'dd/MM/yyyy'" (focus)="openPosition(positionDetails)" [readonly]="true">
</md-input-container>
<div *ngIf="positionDetails.showPosition">
<datepicker [(ngModel)]="positionDetails.position_start" [showWeeks]="false" [maxDate]="positionend" (selectionDone)="onPositionStart($event, positionDetails)"></datepicker>
</div>
</div>
</md-card>
这意味着您必须更新您的方法以仅修改给定的 positionDetails
openPosition(positionDetails){
positionDetails.showPosition = true;
}
onPositionStart(event: any, positionDetails) {
positionDetails.position_start = new Date(event);
positionDetails.showPosition = false;
}
并且还给每个迭代它自己的一组变量
this.positions = [{
"position_start": "",
"showPosition": false
}];
关于javascript - 类型错误 : Cannot read property '0' of undefined in angular2 for using index in datepicker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47546475/
我是一名优秀的程序员,十分优秀!