2016-06-08 1 views
2

J'ai regardé this clarifying keynote dans lequel Papa Misko présente le nouveau système de routage introduit dans la version RC.Où est la route paresseuse cité dans Angular 2?

Il est contenu dans la présentation de la solution pour le « Last chargement Lazy Puzzle Piece », et se fie à citer le nom du composant d'itinéraire comme indiqué dans son propre exemple:

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

Mais sa ne fonctionne pas pour moi! Le compilateur de tapuscrit se plaint cependant. Voici l'erreur:

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'. 

Il semble que c'était pas encore mis en œuvre. Est-ce que quelqu'un sait ce qui se passe et si ce n'est pas vraiment implémenté?

+2

Pour autant que je sais que ce n'est pas encore mis en œuvre dans la version publiée RC.1. Ce routeur sera de nouveau abandonné. Un nouveau routeur est en cours et je suggère d'attendre la migration de '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' –

+0

@ günter-zöchbauer Déformé? Comment sais-tu ça? –

+2

Il a été mentionné dans tous les types de canaux, les commentaires aux questions, Gitter, ..., également des membres de l'équipe Angular2 depuis environ 1-2 semaines. –

Répondre

4

A cette époque (08/06/16), il est pas encore terminé, mais si vous utilisez webpack vous pouvez utiliser une combinaison de es6-promise combinée avec webpack de require() pour créer votre propre « chargement paresseux » .

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

Regardez l'exemple ici en 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') 
    } 

]) 

Assurez-vous que vous avez installé es6-promise et à l'intérieur de votre package.json.

npm i es6-promise --save