繁体   English   中英

与奥雷利亚的继承

[英]Inheritance with Aurelia

嗨,我在Visual Studio 2015中使用Aurelia。

我正在创建一个体育数据相关站点。

在这里,我有一个基类,可获取有关体育赛事的基本细节。 我从另一个类继承了此基类,并根据基类属性值获取了更多信息。

这是我的基础课-

import {inject} from 'aurelia-framework';
import {SportsEventService} from '../services/data-services/sports-event-service.js';

@inject(SportsEventService)
export class BaseClass{
    sportsEvent;

    constructor(sportsEventService){
        this.SportsEventService = sportsEventService;        
    }

    getSportsEventDetail(sportsEventName){              
        return this.SportsEventService.getSportsEventDetail(sportsEventName)
             .then(response => {                 
                 this.sportsEvent = response;                                  
                 return this.sportsEvent;                 
             });    
    }    
}

这是继承基类的子类-

import {inject} from 'aurelia-framework';
import {SportsEventService} from '../services/data-services/sports-event-service.js';
import {SportsEvent} from './sports-event'

@inject(SportsEventService)
export class ChildClass extends BaseClass{
    constructor(sportsEventService){
        super(sportsEventService);        
    }

    getUpcomingFixture(){                 
        return (this.UpcomingFixtureService.getUpcomingFixture(this.sportsEvent.leagueId)
                .then(response => {                     
                    return response; 
                }));
    }
}

在这里,当我使用baseClass属性时,“ this.sportsEvent”给了我“未定义”。 谁能告诉我,我该如何做?

直到在this.sportsEvent = response;分配它之前, this.sportsEvent undefinedthis.sportsEvent = response; 线。

在基类的getSportsEventDetail方法完成之前,您将无法调用ChildClass.getUpcomingFixture方法,因为ChildClass.getUpcomingFixture依赖于this.sportsEvent

尝试执行如下代码:

childClass.getSportsEventDetail(sportsEventName)
  .then(() => childClass.getUpcomingFixture());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM