繁体   English   中英

创建路径助手,将哈希传递给把手助手或连接字符串

[英]create path helper, pass hash to handlebars helper or concatenate string

我一直在寻找一种在把手中创建路径助手的方法,它可以为特定页面生成一个URL。 我需要能够传递路线名称和生成路线所需的参数。 首先,我希望将哈希值传递给帮助程序...但这是不可能的,因为您无法在处理程序模板中创建它。 现在语法是这样的:

{{{path 'some_path_name' 'foo=bar' }}} 

这似乎工作,但现在我有一个问题,我不能连接模板内的字符串。 知道最好的方法是什么? 我现在看到的唯一选择是我在我的javascript代码中创建了参数...但我真的不喜欢这个,我不能在模板中指定它。

我有一个映射某处将some_path_name映射到/ path-name /:foo ...所以我希望路径助手创建/ path-name / bar。

亲切的问候,

大安

此代码应该可以使用,但您必须添加一些额外的验证。

var routes = {
    'some_path_name': '/path-name/:foo'
};

Handlebars.registerHelper('path', function (routeName, options) {
    var route,
        params;

    if (!routes.hasOwnProperty(routeName)) return;

    route = routes[routeName];
    params = options.hash;

    for (var param in params) {
        var value = params[param];
        route = route.replace(':'+ param, value);
    }

    return route;
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM