2013-10-07 1 views
0

Je veux créer quelque chose de similaire à ce que Stackoverflow a avec le bouton de partage: Je veux créer un lien court pour les partages. Maintenant, mon lien peut prendre les 3 formes suivantes:Emberjs routeur avec route partiellement interprétée

s/51b9dd49065f905411000000/1 
s/51b9dd49065f905411000000/51b9dd49065f905411000020/2 
s/51b9dd49065f905411000000/51b9dd49065f905411000020/51b9dd49065f905611000020/3 

Comment puis-je faire Ember d'interpréter la route jusqu'à ce que s/ puis me donner le reste comme un argument pour que je puisse le traiter et de reconstruire la route appropriée?

Répondre

1

Vous pouvez utiliser des segments d'étoile. Ceci est documenté here

Compte tenu de cette application:

App.Router.map(function() { 
    this.route('share', { path: 's/*linkPath' }) 
}); 

App.ShareRoute = Ember.Route.extend({ 
    model: function(params) {  
    console.log(params.linkPath); 
    return params; 
    } 
}); 

Quand une URL commence par s/ et se termine par quoi que ce soit. La valeur restante sera configurée dans une variable appelée linkPath.

Par exemple:

URL       => params.linkPath content  
------------------------------------------------------------- 
s/51b9dd49065f905411000000/1 => "51b9dd49065f905411000000/1" 
s/hey/ho/lets/go    => "hey/ho/lets/go" 

Donc, dans votre crochet modèle, vous pouvez obtenir le reste des arguments, en utilisant params.linkPath.

Vous pouvez le voir en action dans ce jsbin http://jsbin.com/OrEhAso/3/#/s/51b9dd490/51b9dd490/3. Ouvrez la console et vous verrez la chaîne "51b9dd490/51b9dd490/3" enregistrée.

Questions connexes