我正在开发一个角度应用,我想在更新其中一个行项后重新加载数据表。当我尝试重新加载数据表时,会抛出上面标题中列出的错误。
export class ListComponent implements OnInit {
public id: number;
public table: TableData[];
public rowData: TableData;
constructor(private compService: CompService) {}
ngOnInit() {
this.getX(this.id);
}
getX(id: number){
this.compService
.getTable(id)
.subscribe(
data => this.table = data,
error => this.errorMessage = error
);
}
saveChanges(){
this.compService
.updateRow(this.rowData)
.subscribe(
data => true,
error => {
this.errorMessage = error;
console.log(this.errorMessage);
},
() => {
console.log("Changes saved");
this.getX(this.id);
})
}
export class CompService {
private Url = '...';
constructor(private http: Http) {}
getTable(id: number){
const url = `...`;
return this.http
.get(url)
.map(response => response.json())
.catch(this.handleError)
}
updateRow(rowData: RowData){
let headers = new Headers();
headers.append('Content-Type', 'application/json');
let options = new RequestOptions({headers: headers});
const url = `...`;
return this.http
.put(url, JSON.stringify(rowData), options)
.map( response => response.json())
.do(data => console.log('Update-Response: ' + JSON.parse(JSON.stringify(data || null))))
.catch(this.handleError);
}
private handleError(error: Response | any) {
let errMsg: string;
if (error instanceof Response) {
const body = error.json() || '';
const err = body.error || JSON.stringify(body);
errMsg = `${error.status} - ${error.statusText || ''} ${err}`;
} else {
errMsg = error.message ? error.message : error.toString();
}
console.error(errMsg);
return Observable.throw(errMsg);
}
}
当调用我的ListComponent中的get方法时,表get的加载没有任何问题。当update方法调用get方法重新加载表时,标题内列出的错误将显示在浏览器控制台中。 更新方法正在运行。刷新页面后,数据会更新。
有人可以解释错误背景并帮我修复它吗?
提前致谢,感谢您的帮助。
答案 0 :(得分:0)
你有一个范围问题:你在这里创建一个新对象:
() => {
在该对象中,没有名为getX的函数。