2

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

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>

逗号只是表示两个哈希之间的分隔。

4

2 回答 2

1

不,由于Handlebars.js使用参数的方式,它不能分隔多个散列。

于 2012-04-30T22:05:06.150 回答
0

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

{ 
  "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

显然,您希望对其进行改进,以便事物周围有正确的引号等。但是这样的东西对您有用吗?

于 2012-04-27T16:55:09.973 回答