【发布时间】:2020-06-14 22:53:28
【问题描述】:
我有一个方法可以进行查询并获取一些数据。
我知道数据在那里,因为 console.log 正在显示它,但它没有传递给我创建的变量,所以我将它添加到组件的 .html 中的 *ngFor 循环中。
代码如下:
...
export class MainComponent {
queryResult; // results wanted here
constructor(private myService: MyService) {
this.testQuery(); // run the method
}
testQuery() {
const qry = 'SELECT * FROM mytable';
this.myService.db.query( qry, ( err, result ) => {
if ( err ) {
console.log('err', err);
} else {
console.log('result', result); // shows the data
this.queryResult = result; // result is NOT passed to this.queryResult
}
} );
}
如何将结果数据传递给 this.queryResult?
更新:
我已经检查了 this.queryResult 那里实际上有数据。
看起来像这样:
console.log(this.queryResult);
它会返回这个:
那和 *ngFor 有关系吗?
这是那部分:
<ul>
<li *ngFor="let data of queryResult">
{{data.City}}
</li>
</ul>
【问题讨论】:
-
结果是传递给this.queryResult。是什么让你不这么认为?
-
放入 changerDectorRef。检测变化()
-
我在 .html 中没有输出
- {{data}}
-
在将 this.queryResult 分配给结果后立即添加一个 console.log(this.queryResult)
-
查询的返回类型是什么?它是一个异步函数吗?你试过
this.queryResult = await this.myService.db.query(qry)吗?
标签: angular typescript angular9