2017-03-14 2 views
0

Je suis probablement juste manquer quelque chose d'évident, mais je ne peux pas obtenir :id ou *id de travailler.Comment faire fonctionner les routes paramétrées

Ce sont les configs de routage que je utilise:

{ 
    route: 'char/:id', 
    name: 'char', 
    moduleId: 'modules/char/char', 
    href: "char" 
} 

Et ceci est le code que je suis entré en char.ts:

export class Char { 
    activate(params: {id: string}) { 
    console.log(params.id); 
    } 
} 

je ne peux pas semblent maintenant affecter des valeurs à id à l'adresse bar. Quelle est la syntaxe pour cela?

(j'ai aussi essayé de faire le paramètre optionnel, avec :id? et toujours rien)

+0

Votre route est bien ce que vous avez si vous seulement console.log (params)? Est-ce que c'est indéfini? – maximedubois

+0

@maximedubois non il ne se connectera pas n'importe quoi de toute façon. Si je navigue vers 'http: // localhost: 9000/char' avec l'itinéraire défini sur' 'char /: id?' je suis redirigé vers la page d'accueil. Alors que si je navigue à 'http: // localhost: 9000/char /' je reçois 404. Et si je donne une valeur 'http: // localhost: 9000/char /? Id = 42' je reçois un 404 sur le Script 'vendor-bundle.js'. – Olian04

+0

@maximedubois nvm ... Je suis nouveau sur les frameworks singlepage, je ne savais pas que je devais mettre un # devant le nom de la route dans l'url. Merci à tous :) – Olian04

Répondre

0

avéré que je l'avais un peu en arrière depuis le début.
C'est ce qui fonctionne:

http://localhost:9000/#char/foobar 

id serait alors égale à foobar.