车把.js:是否可以将多个哈希作为参数传递给车把助手



假设我已经声明了以下助手

Handlebars.registerHelper("linkTo", function(request, params) {
    return window.linkTo(request, params);
});

我如何(如果可能)在视图中做这样的事情(语法不正确,仅用于显示目的)

<a href="{{link_to module='products' controller='view', product=product.id artist= artist.id}}">foo</a>

逗号只是象征两个哈希之间的分离。

NO.js使用参数,它不能分隔多个哈希。

如果您可以看到将参数放入可以作为对象文字的一部分传递的结构中的方法,那么我知道这将起作用。例如:

{ 
  "params" : {
    "module" : "products",
    "controller" : "view",
    "product" : 5,
    "artist" : 25
  }
}

加上这个助手:

Handlebars.registerHelper("link_to", function(params) {
  var result = "";
  var insertAmpersand = false;
  for (var prop in params) {
      if (insertAmpersand) {
          result += "&";
      } else {
          insertAmpersand = true;
      }
      result += prop + "=" + params[prop];
  }
  return result;
});

可以这样称呼:

{{link_to params}}

要生成:

module=products&controller=view&product=5&artist=25

显然,您需要对其进行改进,以便事物周围有正确的引号,等等。但是这样的事情对你有用吗?

最新更新