2017-06-20 123 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

相關問題