Emberjs路由器具有部分解释路线

时间:2013-10-07 13:19:29

标签: ember.js ember-router

我想创建类似于Stackoverflow与共享按钮的内容:我想为共享创建一个短链接。现在我的链接可以采用以下3种形式:

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

我怎样才能让ember解释路线直到s/然后把剩下的作为一些论点给我,这样我才能处理它并重建正确的路线?

1 个答案:

答案 0 :(得分:1)

您可以使用星段。记录在案here

鉴于此申请:

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

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

当网址以s/开头并以任何结尾时结束。其余值将在名为linkPath的变量中设置。

例如:

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

因此,在模型钩子中,您可以使用params.linkPath来获取其余参数。

你可以在jsbin http://jsbin.com/OrEhAso/3/#/s/51b9dd490/51b9dd490/3中看到这个。打开控制台,您将记录字符串“51b9dd490 / 51b9dd490 / 3”。