0
好了,我要發佈一些CDN我的預建角模塊,然後讓一些角度航線能夠指向它,並把它加載。我怎樣才能loadChildren在我的路線時,我的模塊上的一些CDN
我尚未出手角碼還,但有可能是一個很好的理由,我不能簡單地指向了loadChildren一些隨機的網址,並期望它來獲取和加載模塊。如果你看看我的代碼示例,那麼當我將我的預構建的goo.umd.js模塊放在與我的index.html文件相同的目錄中時,唯一的作品就是這樣。
我還沒有找到一個CustomLoader,將拉離我的rawgit.com CDN這個模塊的任何實例。任何方向我可以集中我的研究將不勝感激。
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { DashboardComponent } from './dashboard.component';
import { HeroesComponent } from './heroes.component';
import { HeroDetailComponent } from './hero-detail.component';
declare var System: any;
let gooUrl = "https://rawgit.com/ghstahl/angular4-goo-module/master/dist/bundles/goo.umd.js#GooModule";
let badGooUrl = "https://idontexist.com/ghstahl/angular4-goo-module/master/dist/bundles/goo.umd.js#GooModule";
const routes: Routes = [
{ path: '', redirectTo: '/dashboard', pathMatch: 'full' },
{ path: 'dashboard', component: DashboardComponent },
{ path: 'detail/:id', component: HeroDetailComponent },
{ path: 'heroes', component: HeroesComponent },
{ path: 'goo', loadChildren:() => System.import(gooUrl)}, // doesn't work, and this url exists.
{ path: 'goo-bad', loadChildren:() => System.import(badGooUrl)},// doesn't work, as I expected a 404.
{ path: 'goo-url', loadChildren: gooUrl}, // doesn't work, and this url exists.
{ path: 'goo-local', loadChildren: "goo.umd.js#GooModule"} // works
];
@NgModule({
imports: [ RouterModule.forRoot(routes) ],
exports: [ RouterModule ]
})
export class AppRoutingModule {}
尼斯,下一個問題:如果我不知道網址什麼Mymodule中前場,並在現實中永遠不會知道它。試想一下,後端向我下面的[{路徑:「胡說」,網址:「HTTP://a.com/blah.bundle.js」}]數組 –
如果所有的模塊都在同一個域,你可以這樣做: ''''myModule':'https:// rawgit.com/ghstahl/angular4-goo-module/master/dist/bundles'''' 'loadChildren:「myModule/goo .umd.js#GooModule「''' –
謝謝Gosha,不幸的是他們不是。預計託管的角應用程序可以從任何地方獲取模塊。我的rawgit.com域是測試這個。我已經能夠通過一個React/Mobx項目來實現這一點,我的所謂捆綁模塊作爲腳本被注入到DOM-HEAD中,當它運行時,它將其路由通告給主機。 –