Pregunta

I want to create something similar to what Stackoverflow has with the share button: I want to create a short link for shares. Now my link can take the following 3 forms:

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

How can I make ember to interpret the route only until s/ then give me the rest as some argument so I can process it and reconstruct the proper route?

¿Fue útil?

Solución

You can use star segments. This is documented here

Given this 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;
  }
});

When a url begins with s/ and ends with anything. The remaining value will be setup in a variable called linkPath.

For example:

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

So in your model hook, you can get the rest of the arguments, using params.linkPath.

You can see this in action in that jsbin http://jsbin.com/OrEhAso/3/#/s/51b9dd490/51b9dd490/3. Open the console and you will se the string "51b9dd490/51b9dd490/3" logged.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top