2017-07-06 45 views
0

我有一個類如下不與@Injectable是有可能使用一個服務成打字稿類在角2+

export class A extends B { 

    calculateTotal(): number { 
     //Implementation 
    } 
} 

上述功能calculateTotal需要使用該註釋的服務註釋與@Injectable能夠獲得一些值來執行一些總數。問題是:可以將該服務用於該課程嗎?

阿什利

+0

是的,它是好的和記錄:https://angular.io/guide/dependency-injection。你能否詳細說明你的問題?你在問什麼不太清楚。 –

+0

@PaoloStefan編輯我的問題 – ashley

回答

1

有不同的方式來獲得注入class A一個SomeService實例。我使用的是在離子2是:

  • 如果類A可以是一個組件,該@Component裝飾添加到它的定義和providers元數據給它;
  • 導入class A定義文件中的服務定義;
  • 將構造方法添加到class A並將服務實例聲明爲參數。

例如,假設服務類被命名爲SomeService和文件some.service.ts在同一目錄定義爲當前源文件:

import { Component } from '@angular/core'; 
import { SomeService } from './some.service'; 

@Component({ 
    providers: [ SomeService ] 
}) 
export class A extends B { 

    constructor(public s:SomeService){} 

    otherMethod(){ 
     this.s; // SomeService is accessible like this 
    } 
} 

的更多信息可在the official docs