javascript - 错误 TS2304:找不到名称“db”。在火力地推物体时
问题描述
我正在尝试使用 firebase 推送对象,其中 angular 将充当前端。
组件.html
<h3>Adding an object</h3>
<input type="text" (keyup.enter)="addCourse(course)" #course>
组件.ts
import { Component, OnDestroy } from '@angular/core';
import { AngularFireDatabase, AngularFireList } from 'angularfire2/database';
import { Observable, of, Subscription } from 'rxjs';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
})
export class AppComponent {
title = 'FirebaseDemo';
// courses: any[];
courses$;
course$;
author$;
todos$: AngularFireList<any>;
// subscription : Subscription;
constructor(db: AngularFireDatabase) {
// code to read the courses.
db.list('/course')
.valueChanges()
.subscribe((inp) => {
this.courses$ = inp;
console.log(this.courses$);
});
}
addCourse(value: string) {
db.list('/course/').set('4', value);
}
}
这里 addCourse(value) 函数中的最后一个 db 实例抛出错误,称为找不到名称 db。
如何从构造函数中访问 db 变量或如何将对象推送到 firebase?
解决方案
在构造函数之外,您可以使用 this.db 访问 db。请在您的 addCourse 功能中尝试以下更改并验证..
addCourse(value: string) {
this.db.list('/course/').set('4', value);}
还对构造函数进行更改以使数据库公共/私有,如:
constructor(public db: AngularFireDatabase)
推荐阅读
- selenium - 如何在 div 和 span(最好是 xpath)之间为包含不间断空格的文本编写定位器()
- excel - VBA 在文本框中下面的行中插入数据
- python - ImportError:无法导入名称“包含”
- azure-ad-b2c - 自定义策略中的自定义错误消息
- google-analytics - 如何在 Google Analytics api v4 中使用 AND 运算符过滤多个维度?
- java - SOAPUI 在使用 WSDL 创建新项目时未生成示例请求
- sql - 在同一列上使用具有两种条件的 Where 子句
- javascript - 如何实现在悬停反应路由器链接时显示下划线的过渡效果?
- javascript - 在浏览器中调试 reactjs 时无法访问控制台中的局部变量
- django - 单击时设置会话变量