我在Fauxten上创建了一个数据库,现在我正在尝试将它连接到我的项目中。我可以在浏览器上打开链接,但当我尝试在应用程序中调用它时,没有任何反应。我看不出我遗漏了什么
import { Injectable } from '@angular/core';
import PouchDB from 'pouchdb';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class ApiService {
private db;
url = 'http://localhost:5984/_utils/#database/grundbaustein/_all_docs';
constructor(private http: HttpClient) { }
setUpPDB() {
this.db = new PouchDB(this.url);
}
getdataDB() {
this.http.get(this.url).subscribe((res) => {
console.log(res);
});
}
}我想用来访问我的数据库的服务
import { Component } from '@angular/core';
import { ApiService } from '../api.service';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
constructor(private api: ApiService) { }
ionViewDidLoad() {
this.api.setUpPDB();
this.api.getdataDB();
}
}这就是我的Page.ts,我想在这里使用我从数据库中获得的信息。
{
"name": "firstapp",
"version": "0.0.1",
"author": "Ionic Framework",
"homepage": "https://ionicframework.com/",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/common": "~8.1.2",
"@angular/core": "~8.1.2",
"@angular/forms": "~8.1.2",
"@angular/platform-browser": "~8.1.2",
"@angular/platform-browser-dynamic": "~8.1.2",
"@angular/router": "~8.1.2",
"@ionic-native/core": "^5.0.0",
"@ionic-native/http": "^5.17.1",
"@ionic-native/splash-screen": "^5.0.0",
"@ionic-native/status-bar": "^5.0.0",
"@ionic/angular": "^4.7.1",
"@types/pouchdb": "^6.4.0",
"cordova-plugin-advanced-http": "^2.3.0",
"core-js": "^2.5.4",
"pouchdb": "^7.1.1",
"rxjs": "~6.5.1",
"tslib": "^1.9.0",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular-devkit/architect": "~0.801.2",
"@angular-devkit/build-angular": "~0.801.2",
"@angular-devkit/core": "~8.1.2",
"@angular-devkit/schematics": "~8.1.2",
"@angular/cli": "~8.1.2",
"@angular/compiler": "~8.1.2",
"@angular/compiler-cli": "~8.1.2",
"@angular/language-service": "~8.1.2",
"@ionic/angular-toolkit": "^2.1.1",
"@types/jasmine": "~3.3.8",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "^5.0.0",
"jasmine-core": "~3.4.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~4.1.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~2.0.1",
"karma-jasmine-html-reporter": "^1.4.0",
"protractor": "~5.4.0",
"ts-node": "~7.0.0",
"tslint": "~5.15.0",
"typescript": "~3.4.3"
},
"description": "An Ionic project",
"cordova": {
"plugins": {
"cordova-plugin-advanced-http": {}
}
}
}发布于 2019-12-04 20:23:52
您并不是在ionViewDidLoad中调用getdataDB,而只是在调用setUpPDB。因此,不会调用该方法,也不会发出get请求
更新
ngOnInit不会像ionViewDidLoad那样工作,因为它只在组件创建时工作一次,而不是每次导航到离子页面时都起作用。但是尝试一下这个,看看你是否已经找到了这个组件
试试这个,让我知道会发生什么:
import { Component, OnInit } from '@angular/core';
import { ApiService } from '../api.service';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage implements OnInit {
constructor(private api: ApiService) { }
ngOnInit() {
this.api.setUpPDB();
this.api.getdataDB();
}
}https://stackoverflow.com/questions/59175873
复制相似问题