2016-12-05 36 views
0

因此,我以下面的方式設置了我的Aurelia應用程序,並且我想要將所有模塊和依賴項導入Main.js中,並且仍然能夠在像Start.js這樣的模塊中注入依賴項。我也想顯示一個等待所有內容加載的啓動畫面。這有可能嗎?如何使用Aurelia加載Main.js中的所有依賴關係?

main.js

import 'bootstrap'; 
    // TODO: Import all modules here 
    // import {inject} from "aurelia-framework"; 
    // import {PortalData} from "./portalData"; 

    object export function configure(aurelia){   

      aurelia.use 
       .standardConfiguration() 
       .developmentLogging(); 

      // start aurelia and navigate to app.html/app.js 
      aurelia.start().then(a=> a.setRoot());   
     } 

app.js

export class App { 

    // aurelia convention 
    configureRouter(config, router) 
    { 
     this.router = router; 

     config.map([     
      { 
       route:["", "home"], 
       moduleId:"./start", 
       title:"SevaLink", 
       nav:true 
      } 

start.js

import {inject} from "aurelia-framework"; 
    import {PortalData} from "./portalData"; 


    @inject(PortalData) 
    export class Start { 

     constructor(portalData){ 
      this.portalData = portalData; 
     } 


     activate(){ 
      return this.portalData.getApplications() 
       .then(apps => this.applications = apps); 
     }  
    } 

回答

4

您可以導入所有依賴的應用程序中的任何模塊中。不過,我不確定那樣做會怎樣。這隻會讓你的應用程序啓動速度變慢,並不會帶來任何好處。 Aurelia對模塊使用延遲加載。如果你想在啓動時加載你的應用程序的所有代碼,只需捆綁應用程序。

+0

我在所選模塊中使用jQuery和Velocity並非全部。所以我希望能夠在一箇中心位置寫入一次導入語句,而不是在每個模塊中重複。我已經捆綁了一切。 – puri

+0

這不是模塊如何工作。當你使用模塊時,你必須導入每個模塊,無論你打算使用它。如果你想在全球有東西可用,那麼你必須將它附加到全局或窗口對象。 –

+0

我想我已經在Angular 2的根模塊中看到類似這樣的東西,他們通過約定將它稱爲AppModule。但我可能也有錯誤的想法。 – puri

相關問題