【问题标题】:Emberjs router with partially interpreted route带有部分解释路由的 Emberjs 路由器
【发布时间】:2013-10-07 13:19:29
【问题描述】:

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

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

如何让 ember 仅在 s/ 之前解释路线,然后将其余部分作为参数给我,以便我可以处理它并重建正确的路线?

【问题讨论】:

    标签: ember.js ember-router


    【解决方案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”被记录下来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 2017-04-17
      • 2016-06-01
      • 1970-01-01
      相关资源
      最近更新 更多