ionic 2 如何继承一个已经依赖注入 service 的基类?
时间: 2020-08-20来源:V2EX
前景提要
基类: import { LoginPage } from './../login/login/login'; import { AccountData } from './../../storages/account_data'; import { Component, Injectable } from '@angular/core'; import { NavController, NavParams, Platform, ViewController } from 'ionic-angular'; /* Generated class for the Base page. See http://ionicframework.com/docs/v2/components/#navigation for more info on Ionic pages and navigation. */ @Component({ selector: 'page-base', templateUrl: 'base.html' }) export abstract class BasePage { needLogin = false; constructor(protected accountData: AccountData, protected nav: NavController) { } push(page: any) { this.accountData.hasLoggedIn().subscribe(hasLoggedIn => { if (hasLoggedIn) { this.nav.push(page); } else { if (page.needLogin) { this.nav.push(LoginPage); } else { this.nav.push(page) } } }); } pop() { this.nav.pop(); } setRoot(page: any) { this.nav.setRoot(page); } }
继承该基类的: import { AccountData } from './../../storages/account_data'; import { BasePage } from './../base/base'; import { Component } from '@angular/core'; import { NavController, NavParams } from 'ionic-angular'; /* Generated class for the Discover page. See http://ionicframework.com/docs/v2/components/#navigation for more info on Ionic pages and navigation. */ @Component({ selector: 'page-discover', templateUrl: 'discover.html' }) export class DiscoverPage extends BasePage { constructor(protected accountData: AccountData, protected navCtrl: NavController, ) { super(accountData, navCtrl); } }
运行 ionic serve 后报错: Uncaught TypeError: Object prototype may only be an Object or null: undefined at setPrototypeOf ()
但是如果父类的构造方法为空的话一切正常,求解。

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行