2017-01-11 34 views
0

對於此項目,我可否或不可以使用帶AOT的Angular 2?重要的是它是AOT,它不能是JIT。使用AOT在Angular 2中加載不存在的組件

我構建了一個包含很多不同組件的應用程序,我將在運行時獲得應該顯示哪些組件的規範。有時會顯示1個組件,有時可能會顯示30個。

我想將這些組件放在不同的文件中。不只是一個不同的.ts文件,我希望將這些組件放在不同的.js文件中,並將它們存儲在服務器上,並在必要時獲取它們。

原因有三:

  1. ,用戶不應該有,如果只是一個組件進行更新,更新的應用程序。

  2. 如果更新是在一個組件上進行的,我不希望應用程序中的任何其他內容因此而中斷。 (並且是的)。如果建立了新的應用程序,我們必須重新測試整個應用程序,而不僅僅是一個組件。

  3. 如果只需要1成分是不必要加載所有30

所以我一直對谷歌/這裏堆棧溢出,並搜查這一點,想盡了各種辦法,但似乎沒有人有該這個問題。我發現的所有例子已經在應用程序中有組件,並且已經在NgModule中聲明瞭它。但是我的組件在我從服務器獲取文件之前不存在。

回答

0

我沒有面對這樣的挑戰,但這些都是我的想法。

  1. 如果每個這些30個組件中的使用路由器渲染,將它們中的每一個單獨的特徵模塊中並且創建路由器配置以懶惰地加載這些模塊的每個。如果您的項目是基於Angular CLI的,那麼無論您是否使用AoT,它都會爲每個延遲加載的組件構建一個單獨的包。那麼你應該可以在你的產品服務器中替換任何這些軟件包而不用接觸其他人。

如果您未使用Angular CLI,則需要手動配置Webpack構建以爲這30個組件中的每一個創建單獨的包。

  • 如果你不使用加載這些組件的路由器,作爲公認的答案在這裏描述考慮使用APP_INITIALIZER:Angularjs2 - preload server configuration before the application starts
  • 相關問題