ali*_*990 1 datasource angular-material angular angular6
我从 MySQL 数据库获取用户列表以<mat-table>使用dataSource属性显示它:
以下是 typescript 方法getUnitData(),我将 dataSource 值设置为从 PHP 脚本返回的 JSON 数组:
export class RegistrationComponent implements OnInit {
dataSource: MatTableDataSource<units>;
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
constructor(private auth: AuthApiService) { }
ngOnInit() {
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
}
applyFilter(filterValue: string){
this.dataSource.filter = filterValue.trim().toLowerCase();
if(this.dataSource.paginator)
{
this.dataSource.paginator.firstPage();
}
}
getUnitData(){
this.auth.getUnitDataService().subscribe(
(data)=>
{
this.dataSource = new MatTableDataSource(data);
},
(error)=>
{
}
)
}
}
Run Code Online (Sandbox Code Playgroud)
这是来自的主要方法AuthApiService:
getUnitDataService(){
if(this.checkIsLogin){
this.headerOptions.append('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
return this.http.get(this.globalVar.getUnitData,{
headers: this.headerOptions
});
}
else{
this.router.navigate(['/login']);
}
}
Run Code Online (Sandbox Code Playgroud)
PHP脚本是:
public function getUnitData($conn)
{
try{
$sql = "SELECT * FROM unit ORDER BY unit_id DESC";
$getData = $this->conn->prepare($sql);
$getDataResult = $getData->execute();
$getDataSize = $getDataResult->rowCount();
$getDataResult->fetchAll();
return $getDataResult;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
Run Code Online (Sandbox Code Playgroud)
然后我在另一个文件中使用以下URL调用:this.globalVar.getUnitData。
我得到的错误如下:
1.
[ts] 找不到名称“单位”。
2.
“Object”类型的参数不能分配给“any[]”类型的参数。“对象”类型可分配给很少的其他类型。您是想改用“any”类型吗?“对象”类型中缺少属性“长度”。
我在堆栈上尝试了这个解决方案,但仍然有同样的错误。
我遇到了同样的问题,我通过这种方式解决了它:
new MatTableDataSource(<any> response);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9039 次 |
| 最近记录: |