2017-09-20 2 views
0

Ich habe abstrakte Klasse in app.resolver.service.ts. Es funktioniert, während ich mich entwickle, aber ich habe Fehler in PROD-Build.Angular Cli: -prod Build schlägt auf "Abstrakte Klasse" mit Angular 4

import { Injectable } from '@angular/core'; 
import { HttpClient } from '@angular/common/http'; 
import { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; 

// Annotation section 
@Injectable() 

abstract class RequestResolver implements Resolve<any> { 
     abstract dataUrl: string; 
     constructor(public http: HttpClient){ 
     this.http = http; 
     } 
     abstract resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) 
    } 

    export class ProjectResolver extends RequestResolver { 
     dataUrl: string = "https://api.citysdk.waag.org/layers/parking.garage/objects?per_page=50"; 

     public resolve() { 
     return this.http.get(this.dataUrl); 
     } 
    } 

enter image description here

Ich fand Arbeitsbeispiel ohne abstrakte Klasse

import { Injectable } from '@angular/core'; 
import { HttpClient } from '@angular/common/http'; 
import { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; 

// Annotation section 
@Injectable() 

export class ProjectResolver { 
    private dataUrl: string = "https://api.citysdk.waag.org/layers/parking.garage/objects?per_page=50"; 

    constructor(public http: HttpClient){ 
    this.http = http; 
    } 

    public resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { 
    return this.http.get(this.dataUrl); 
    } 
} 
+0

Verwenden Sie '@ Injectable' Decorator? – yurzui

+0

@yurzui Ja, mein Service hat diese –

+0

Kannst du es zum Code hinzufügen? – yurzui

Antwort

0

Angular versucht, die Klasse zu konstruieren, die die injizierbare() Dekorateur hat. Es kann nicht instanziiert werden, da es sich um eine abstrakte Klasse handelt.

Verwandte Themen