Deklarasi atau pernyataan kesalahan yang diharapkan dalam file TypeScript (angular2)

Saya mencoba menjumlahkan nilai yang dimasukkan di kolom mat-table menggunakan input.

Saya telah membuat tabel dengan 3 kolom: Account Id, Account Description dan Value. Saya juga telah membuat file JSON di folder aset dengan nilai acc_id dan acc_desc .

Saya kemudian mengakses nilai-nilai ini di tabel saya untuk masing-masing kolom.

Saya juga telah membuat kolom Value yang telah saya tetapkan kolom inputnya.

Di sebelah tabel saya mengambil kotak sederhana dengan dua ubin di mana saya ingin mengambil jumlah semua nilai yang dimasukkan di kolom Value.

account.component.html

    <!-- Table starts here -->

<mat-card>
<div class="example-container mat-elevation-z8">

  <mat-table #table [dataSource]="dataSource1">

    <!-- Account No. Column -->
    <ng-container matColumnDef="acc_id">
      <mat-header-cell *matHeaderCellDef> Account ID. </mat-header-cell>
      <mat-cell *matCellDef="let element">{{element.acc_id}}</mat-cell>
    </ng-container>

    <!-- Account Description Column -->
    <ng-container matColumnDef="acc_des">
      <mat-header-cell *matHeaderCellDef> Account Description </mat-header-cell>
      <mat-cell *matCellDef="let element">{{element.acc_des }} </mat-cell>
    </ng-container>

        <!-- Value Column -->
    <ng-container matColumnDef="value">
      <mat-header-cell *matHeaderCellDef> Value </mat-header-cell>
      <mat-cell *matCellDef="let element">
     <ng-container>
       <input  [(ngModel)]="element.value">
     </ng-container> 
   </mat-cell>
    </ng-container>


    <mat-header-row *matHeaderRowDef="displayedColumns1" ></mat-header-row>
    <mat-row *matRowDef="let row; columns: displayedColumns1;" > </mat-row>

  </mat-table>

   <mat-grid-list cols="2" rowHeight="20:1">

  <mat-grid-tile style="align-self: left;"> Total</mat-grid-tile>
  <mat-grid-tile>{{calculation()}}</mat-grid-tile>

</mat-grid-list>

</div>
</mat-card>

account.component.ts

import {Component, OnInit} from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import { ReactiveFormsModule, FormGroup,FormControl } from '@angular/forms';
import { MatTableDataSource} from '@angular/material';
import { AccountdetailService } from '../accountdetail.service';



@Component({
  selector: 'app-account',
  templateUrl: './account.component.html',
  styleUrls: ['./account.component.scss']
   })


export class AccountComponent implements OnInit {

element: string;
value: any;
constructor( private accdetailservice: AccountdetailService ) { }


  /* Table Starts here
  ---------------------- */

 displayedColumns1 = ['acc_id', 'acc_des', 'value'];
 dataSource1= new MatTableDataSource<Element>(ELEMENT_DATA);


calculation(){ 
return this.dataSource1.data.reduce((summ, v) => summ += parseInt(v.value), 0) 
}



 ngOnInit(){
  this.accdetailservice.accountdetails().subscribe(data =>
  var tempObject = data.map(obj => ({...obj, value: 0}));
  this.dataSource1.data = tempObject; );
 }
}

const ELEMENT_DATA: Element[] = [];

accountdetails.service.ts

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';


@Injectable()
export class AccountdetailService {

  constructor(private http:Http ) { }

  accountdetails()
  {
    return this.http.get('/assets/accountdetails.json')
    .map(result => result.json());
  }}

accountdetails.json

[
    {
        "acc_id": 1001,
        "acc_des": "aaa"

    },

    {
        "acc_id": 1002,
        "acc_des": "aaa"

    }
]

app.module.ts

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { ReactiveFormsModule,FormsModule } from '@angular/forms';
import { HttpModule} from '@angular/http';

import { AppMaterialModule } from './app-material.module';


import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { AccountComponent } from './account/account.component';

import { AccountdetailService } from './accountdetail.service';


@NgModule({
  declarations: [
    AppComponent,
    AccountComponent    
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    ReactiveFormsModule,
    BrowserAnimationsModule,
    AppMaterialModule,
    FormsModule ,
    HttpModule   
  ],
  entryComponents:[ ],

  providers: [ AccountdetailService],
  bootstrap: [AppComponent]
})
export class AppModule { }

Saya dapat menjumlahkan nilai yang dimasukkan di kolom nilai, tetapi saya mendapatkan kesalahan di bawah ini.

masukkan deskripsi gambar di sini

adakah yang bisa memberi tahu saya apa yang hilang dalam sintaksis saya pada kode berikut...?

ngOnInit(){
  this.accdetailservice.accountdetails().subscribe(data =>
  var tempObject = data.map(obj => ({...obj, value: 0}));
  this.dataSource1.data = tempObject; );
 }

Ini keluaranku..

masukkan deskripsi gambar di sini


person Heena    schedule 02.03.2018    source sumber
comment
Saya mencoba sebanyak mungkin cara ... tetapi saya tidak dapat menghilangkan kesalahan itu... meskipun aplikasi saya sedang berjalan.   -  person Heena    schedule 02.03.2018


Jawaban (1)


person    schedule
comment
tapi sekarang saya mendapatkan kesalahan yang sebelumnya saya posting pertanyaan di tautan ini ...stackoverflow.com/questions/49044826/ - person Heena; 02.03.2018
comment
yaitu nilai properti tidak ada pada tipe Elemen - person Heena; 02.03.2018
comment
Saya tidak melihat dalam kode Anda elemen antarmuka. stackblitz.com/angular/ seperti yang Anda lihat , Anda harus mendefinisikan struktur Elemen - person Damien Vitrac; 02.03.2018
comment
saya baru saja menambahkan..ekspor antarmuka Elemen { acc_id: any; nilai: apa saja; acc_des: apa saja; } - person Heena; 02.03.2018
comment
bisakah Anda memeriksa pertanyaan ini...stackoverflow.com/questions/49069432/ - person Heena; 02.03.2018