2016-06-08 53 views
2

我看過this clarifying keynote其中爸爸米斯科介紹了RC版本中引入的新路由系統。Angular 2中的懶惰引用路線在哪裏?

它包含在演示中「最後延遲加載一塊拼圖」的解決方案,並且依賴於如在他自己的例子引述路線組件名稱:

{path: 'simple', component: SimpleCmp} // Non-lazy route 
{path: 'simple', component: 'SimpleCmp'} // Lazy route 

但它不工作對我來說!打字稿編譯器正在抱怨。 以下是錯誤:

Argument of type '{ path: string; component: string; }[]' is not assignable to parameter of type 'RouteMetadata[]'. 
    Type '{ path: string; component: string; }' is not assignable to type 'RouteMetadata'. 
    Types of property 'component' are incompatible. 
     Type 'string' is not assignable to type 'Type'. 

似乎一點尚未實現。 有人知道發生了什麼,如果它真的沒有實施?

+2

據我所知,它尚未在RC.1版本中實現。無論如何,這個路由器將再次被丟棄。一個新的路由器正在進行中,我建議等待從「不使用路由器」轉移到可用。 –

+0

@günter-zöchbauer掉了?你怎麼知道? –

+2

在大約1-2周的時間裏,在所有類型的渠道中都有人提到,Gitter,...也是來自Angular2團隊成員的問題評論。 –

回答

4

在這個時候(16年6月8日)這還沒有完成,但如果你使用的WebPack可以使用帶的WebPack的require()結合es6-promise組合來創建自己的「懶加載」 。

When the official lazy-loading comes out, you can just as easily remove this and use the upcoming standard Angular lazy-loader.

看看angular2 webpack starter的例子。

@RouteConfig([ 
    // Async load a component using Webpack's require 
    // with es6-promise-loader and webpack `require` 

    { 
    path: '/about', name: 'About', 
    loader:() => require('es6-promise!./about')('About') 
    } 

]) 

只要確保您已安裝es6-promise並在package.json中。

npm i es6-promise --save