3

特定のページへの URL を生成するハンドルバーにパス ヘルパーを作成する方法を探していました。ルート名とルートを生成するために必要なパラメーターを渡すことができる必要があります。SO 最初にヘルパーにハッシュを渡すことを検討していましたが、ハンドラー テンプレート内でこれを作成できないため、これは不可能です。構文は次のようになります。

{{{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 に答える