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



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

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

我怎样才能让余烬只解释路线,直到s/然后给我其余的作为一些参数,以便我可以处理它并重建正确的路线?

您可以使用星形细分。此处记录了此文档

给定此应用程序:

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"。

最新更新