如何将带有帮助器和表达式的html作为属性添加到我的部分?

时间:2018-02-11 00:36:45

标签: templates handlebars.js

我有一个部分,我需要根据上下文交换链接,我还需要在该链接中的表达式上使用帮助器。我尝试将此添加到我的部分并将其包含在部分模板中,但它将该行添加为字符串,而不是html。

{{> partial link='<a href="/matchup/{{formatForWeb this.name }}/{{formatForWeb 
matchup.name }}" class="matchup-card__link">code</a>'}}

然后我将其作为{{link}}添加到我的部分模板中:

<div>
     {{link}}
</div>

这里是将dev工具作为字符串添加到我的页面中:

enter image description here

我该如何使这项工作?谢谢你的时间!

1 个答案:

答案 0 :(得分:1)

您无法在helper内使用partial

解决方案是将不同变量中的数据和HTML元素传递给partial,并在局部定义中进行操作。

实施例

{{> newPartial 
  link = '<a href="/matchup/temp1/temp2" class="matchup-card__link">code</a>'
  var1 = this.name 
  var2 = matchup.name
}}

请注意,根据语法,数据(var1和var2)不应包含在大括号{{}}或引号""中。

现在部分可以注册如下

Handlebars.registerPartial('newPartial', function(val) {
  console.log(val);
  return val;
});

此处,在变量val中,您将收到所有3个变量linkvar1var2作为数组对象,您可以使用它们来处理操作和return最终结果。

希望这有帮助。