Javascript 车把在条件中定义{{with}}}

Javascript 车把在条件中定义{{with}}},javascript,handlebars.js,Javascript,Handlebars.js,我希望根据javascript定义的变量在模板中显示与json不同的内容 以下是JSON文件: { "normal" :{ "content":"content" } "expert" :{ "content":"content" } [HTML]现在在我的模板中,我有以下内容: {{#with normal}} <p>{{content}}</p> {{/with}} {{#带法线} {{content}} {{/与}} 现在,我希望能够使

我希望根据javascript定义的变量在模板中显示与json不同的内容

以下是JSON文件:

{
"normal" :{
    "content":"content"
}
"expert" :{
    "content":"content"
}
[HTML]现在在我的模板中,我有以下内容:

{{#with normal}}
    <p>{{content}}</p>
{{/with}}
{{#带法线}
{{content}}

{{/与}}
现在,我希望能够使用“with normal”或“with expert”,具体取决于javascript端定义的变量


我已经做了一个比较助手,但是,我必须使用代码两次,这很难看。所以也许有人知道如何正确地做?谢谢。

您的模板中真的需要逻辑吗

如果
normal
expert
类型的数据的
{{{{with}}
块的主体相同,那么您可能可以完全摆脱
with
并将适当的块传递到模板中。这将逻辑推回到脚本中(如果您有MVC框架的话,最好是视图),这很好,并且优化了模板的一个级别(也很好,特别是因为这是一个带有的
,速度往往很慢)

请注意,Handlebar非常乐意接收数据量超过其需要量的对象,因此编写一个依赖于
normal
块的模板,并通过
expert
传递附加细节(大概)将不会导致任何问题。

您可以使用{{{{if}和else。。。
此外,您可以将处理程序设置为全局并使用两次。

您只需为此编写一个自定义的handlebars帮助程序。但是,您是否在没有MVC框架(如ember.js)的情况下使用handlebars?噢,谢谢,我没有想到这个解决方案,它工作得很好!非常感谢:)