2017-06-20 211 views
-1

在我的角度项目中,我收到标题中说明的错误,并且它的解释是"Property 'ID' is missing in type 'PTOData[]'."但是,每当我将.ID它的结尾,然后说"Property 'ID' does not exist on type 'PTOData[]'."它肯定会。我在某个地方做错了什么?类型'PTOData []'的参数不能分配给'PTOData'类型的参数

,这里是我的.ts文件:

import { Component, OnInit, Input } from '@angular/core'; 
 

 
import { PTOData } from './pto-data'; 
 
import { PTODataService } from './pto-data.service'; 
 
import { Location } from '@angular/common'; 
 

 
@Component({ 
 
    selector: '[pto-row-edit]', 
 
    templateUrl: `./row-edit.component.html`, 
 
    styleUrls: ['./row-edit.component.css'] 
 
}) 
 

 
export class RowEditComponent { 
 
    @Input() pto: PTOData[]; 
 

 
    constructor(
 
     private ptodataservice: PTODataService, 
 
     private location: Location) { } 
 

 
    saveRow(): void { 
 
     this.ptodataservice.update(this.pto.ID) 
 
    } 
 
}

,这里是我的.html文件:

<td><input class='form-control' type="date" id="ptoDate" [ngModel]="pto.date | date: 'yyyy-MM-dd'" (ngModelChange)="pto.date=$event" name="ptoDate" /></td> 
 
<td> 
 
    <select class="form-control" id="ptoFullHalf" [(ngModel)]="pto.fullhalf" name="ptoFullHalf"> 
 
    <option value="full">Full</option> 
 
    <option value="AM">AM</option> 
 
    <option value="PM">PM</option> 
 
    <option value="(full)">(Full)</option> 
 
    <option value="(half)">(Half)</option> 
 
    </select> 
 
</td> 
 
<td> 
 
    <select class="form-control" id="ptoHours" [(ngModel)]="pto.hours" name="ptoHours"> 
 
    <option value="4">4</option> 
 
    <option value="8">8</option> 
 
    <option value="-4">-4</option> 
 
    <option value="-8">-8</option> 
 
    </select> 
 
</td> 
 
<td> 
 
    <select class="form-control" id="ptoScheduled" [(ngModel)]="pto.scheduled" name="ptoScheduled"> 
 
    <option value=""></option> 
 
    <option value="advanced">Advanced</option> 
 
    <option value="scheduled">Scheduled</option> 
 
    <option value="unscheduled">Unscheduled</option> 
 
    </select> 
 
</td> 
 
<td><input class='form-control' type="text" id="ptoNotes" [(ngModel)]="pto.notes" name="ptoNotes" /></td> 
 
<td> 
 
    <input class="form-check-input" type="checkbox" id="ptoinPR" [(ngModel)]="pto.inPR" name="ptoinPR" /> 
 
</td> 
 
<td> 
 
    <button class="btn btn-default btn-primary" style="float:right;"><i class="fa fa-ban" aria-hidden="true"></i></button> 
 
    <button class="btn btn-default btn-primary" style="float:right;" (click)="saveRow()"><i class="fa fa-check" aria-hidden="true"></i></button> 
 
</td>

而且,这里是我的更新功能

update(pto: PTOData): Promise<PTOData> { 
 
     return this.http 
 
      .put(this.ptoDateUrl, JSON.stringify(pto), { headers: this.headers }) 
 
      .toPromise() 
 
      .then(() => pto) 
 
      .catch(this.handleError); 
 
    }

回答

2

这应该是一个object没有array

export class RowEditComponent { 
    @Input() pto: PTOData; 

,或者你只需​​要通过特定对象的ID,通过指数

saveRow(): void { 
    this.ptodataservice.update(this.pto[0].ID) 
} 

编辑

根据你的服务,你需要通过完整的对象不是一个ID,

尝试通过this.pto

saveRow(): void { 
    this.ptodataservice.update(this.pto) 
} 
+0

每当我做任何的我的m得到一个错误,说'''类型'数字'的参数不能分配给'PTOData'类型的参数。'' – asdf

+0

@rcarc检查更新 – Sajeetharan

+0

这是我最初的,但它给了我一个错误,说''属性ty中缺少'ID' pe'PTOData []'。'' – asdf

相关问题