3

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

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

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

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

亲切的问候,

大安

4

1 回答 1

0

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

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;
});
于 2013-08-19T08:53:41.037 回答