angular - setRowData 在第一次调用 Angular 6 时不起作用
问题描述
我有一个带有用于更改每行数据的按钮的 ag-grid。当我单击按钮时,它应该在引导模式中显示另一个 ag-grid;但问题是当网格第一次加载时,它没有显示任何数据,因为它说“No Rows To Show”。当我第二次单击时,它会显示网格数据。
这是我的代码:
OnGridReady(params){
this.gridApi = params.api;
this.loadQuestions();
this.gridApi.setRowData(this.Questions);
}
如您想了解更多loadQuestion()
private loadQuestion(){
this.managementService.getQuestions().subscribe(
(_q: Question[]) => {
this.Questions = _q;
},(err){ blah blah }
);
你能说出问题出在哪里吗?
解决方案
setRowData
在你的loadQuestion
.
private loadQuestion(): void => {
this.managementService.getQuestions().subscribe(
(_q: Question[]) => {
this.Questions = _q;
this.gridApi.setRowData(this.Questions);
},(err){ blah blah }
);
我认为你遇到的问题是由于你这样做的时候setRowData
,数据this.Questions
不可用。
下次加载时,它会在那里。
更新
当您根据问题中的内容定义函数时,您可能会遇到以下错误。
“无法读取未定义的属性‘setRowData’”。
根据此答案中显示的代码,您可以使用箭头函数来获取函数内部可用的外部范围。
有关箭头功能的更多详细信息,请参阅链接
亲切地称为胖箭头(因为
->
是细箭头,又=>
是胖箭头),也称为 lambda 函数(因为其他语言)。另一个常用的功能是粗箭头功能()=>something
。粗箭头的动机是:你不需要
- 保持打字功能
- 它在词汇上捕捉到了这个的意思
- 它在词法上捕获参数的含义
推荐阅读
- go - 从 JSON 字符串恢复满足定义接口的结构
- python - 在 MySQL/PyMySQL 中缓冲提交是否是一次插入多行的可行替代方案?
- java - 如何在读取 java 源文件时查找变量的类型
- arrays - 具有多种对象的 Firestore 快照映射
- ios - tableview 重复单元格向下滚动
- angular - Angular:数据源更新;表没有
- python - 如何让移动物体变慢
- java - 如何递归搜索文件并跳过没有足够权限的文件?
- activerecord - 嵌套评论 Yii2
- google-app-engine - App Engine Flexible for Python 是否支持并发请求?