javascript - ERROR TypeError : data. 切片不是函数

标签 javascript angular

ERROR TypeError: data.slice is not a function
#atMatTableDataSource.push../node_modules/@angular/material/esm5/table.es5.js.MatTableDataSource._orderData (table.es5.js:742)

#at MapSubscriber.project (table.es5.js:675)
#atMapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/map.js.MapSubscriber._next (map.js:35)
#atMapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:54)

我正在使用 JSON 响应并尝试通过 Angular Material 垫表将其显示在 UI 中。请找到附加的代码片段,让我知道我所做的代码有什么错误,或者我是否需要改变我的方法来实现这一目标

JSON 网络服务

{
"data": [
{
  "action": "Ok",
  "created_user": "slstst5",
  "latest_instance": 7713997,
  "modified_dt": "Thu, 12 Jul 2018 06:27:32 GMT",
  "no_of_btl": 159,
  "request": 238244193,
  "sales_rep": "slstst5",
  "status_cd": "Submitted to Prov."
},

服务.ts

import { Injectable } from '@angular/core';
import {HttpClient} from '@angular/common/http';
import {sot} from './sot.model';
import { Observable } from "rxjs";

@Injectable({
providedIn: 'root'
})
export class SotServiceService {
private serviceUrl ="service URL";

constructor(private http : HttpClient) { }
getuser():Observable<sot[]>{
  return this.http.get<sot[]>(this.serviceUrl);
}
}

表.组件.ts

import { Component, OnInit, ViewChild } from '@angular/core';
import { Observable } from "rxjs";
import {MatSort, MatSortable, MatTableDataSource,PageEvent, MatPaginator} 
from '@angular/material';
import {SotServiceService} from '../sot-service.service';

@Component({
selector: 'app-sot-table',
templateUrl: './sot-table.component.html',
styleUrls: ['./sot-table.component.css']
})
export class SotTableComponent implements OnInit {
@ViewChild(MatSort) sort: MatSort;
@ViewChild(MatPaginator) paginator : MatPaginator;
dataSource;
//displayedColumns = ['id', 'name', 'username', 'email', 'phone', 'website'];
displayedColumns = ['request', 'status_cd', 'sales_rep', 'created_user', 
'modified_dt', 'action','no_of_btl'];
//displayedColumns=['userId','id','title','body']
constructor(private sotservice :SotServiceService) { }

ngOnInit() {
this.sotservice.getuser().subscribe(result => {

  if(!result){
    return ;
  }
  this.dataSource= new MatTableDataSource(result);
  this.dataSource.sort= this.sort;
  this.dataSource.paginator=this.paginator;
 })
 }

}

错误快照: Error Snapshot

最佳答案

当您对错误的数据类型使用 slice 函数时,有时会发生这种情况。 Slice 适用于数组,而不是对象。您可能正在尝试切片对象。

关于javascript - ERROR TypeError : data. 切片不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51304884/

相关文章:

javascript - NVD3折线图: Cannot assign to read only property 'series' of 1

Javascript 弹出窗口作为单例

javascript - 未引发 RangeError - JavaScript

javascript - 当我将 hidden-xs 按钮与 bootstrap (Angular) 一起使用时,单击两次按钮

angular - 未捕获的类型错误 : Cannot read property 'id' of undefined in Http services in console in angular?

Angular 2 RC 6 AoT 编译器不工作

javascript - 使用 ID 和 JQUERY 将文本放入 DIV 元素中?

javascript - 如何使 ul 列表中的元素不可排序且不可拖动?

css - Angular2 根据组件选择器名称应用 css

angular - 包装或扩展 Angular Material 组件,允许将未知属性传递给子组件