2017-07-13 44 views
0

我有具有幾個串陣列一個數據存儲打字稿文件:使用跨組件靜態變量

export const servicesData = 
    [ 
     'test', 
     'test', 
    ]; 

export const surgeonsData = 
    [ 
     'test', 
     'test', 
    ]; 

我然後有另一個組件,其中我有一次爲多個實例化。我想以靜態方式使用數據存儲陣列,這樣我就可以在所有實例中使用它們而不必每次都讀取它們。

這是我現在擁有的一個快速摘要。每個預訂組件都需要使用data-model.ts文件中的數組,而無需每次重新讀取它。

import { surgeonsData, servicesData } from 'app/data-models.ts' 

@Component({ 
    selector: 'booking', 
    template: 
     ` 
      <div *ngFor="let s of surgeons"> 
      {{s}} 
      </div> 
     ` 
}) 


export default class BookingComponent { 

    surgeons = surgeonsData; 
    services = servicesData; 

    constructor() {} 


} 

所以在我上面的例子中,每次創建一個新組件時,外科醫生數據都保存在外科醫生變量中。我想每次只有一個變量可以訪問每個組件,而不是每次都這樣做。

+0

你的問題是什麼? –

+0

*我想每次只做一個變量,而不是每個組件都可以訪問。*爲什麼? –

+0

@torazaburo有很多組件,真正的數組相當大,導致它運行速度很慢。由於實際上不需要將變量保存在每個實例化中,因爲數據永遠不會改變,所以只有一個副本可以在全局範圍內使用。見下面回答 – Sisky

回答

0

使用服務訪問全局可用的靜態變量。嘗試在服務之外進行此操作會遇到分區和更改檢測問題。

+0

爲什麼這將是必要的? –

+0

我的想法是,將它作爲所有組件實例的靜態變量隨時可用會比注入服務並每次調用它更快? – Sisky

+0

@ScottMackenzie這不是一個性能問題,更多是一個簡單問題。 –