[英]How to prevent Handlebars to put semicolon in a JS object
我正在编写一个sprity模板,并且我的代码生成半冒号:
{{#each layouts}}
{{#each sprites}}
{{#if dpi}}
["@media (-webkit-min-device-pixel-ratio: {{ratio}}), (min-resolution: {{dpi}}dpi)"]: {
{{/if}}
{{snakecase (cssesc ../classname)}}: {
backgroundImage: url('{{escimage url}}'),
{{#if dpi}}
backgroundSize: {{baseWidth}}px {{baseHeight}}px,
{{/if}}
},
{{#if dpi}}
},
{{/if}}
{{/each}}
{{/each}}
这里是输出。
const sprites = {
icon_00_element_common: {
backgroundImage: url('/sprites/sprite-00_Element_Common.png'),; //I want to stripe this semicolon
} //And I want no return at the end
, icon_00_element_topbar: {
backgroundImage: url('/sprites/sprite-00_Element_TopBar.png'),;
}
...
如何使用Handlebars格式化普通的JS对象?
这可能有点困难。 您可能知道,把手比HTML更好地呈现HTML。
我相信Handlebars会插入此分号,因为看起来您正在输出匿名Javascript函数,并且此类函数需要终止。
通常,我会尝试通过仅用一个if / else块替换您的3套{{#if dpi}}
来获得对模板的更多控制,因此您可以编写两个完整的案例。 这样可以解决退货问题。 然后,您需要以某种方式重新格式化代码,以阻止Handlebars认为您正在编写匿名函数。
参见https://github.com/wycats/handlebars.js/commit/25b8e314afa695125ef769283d43831c20c77e21
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.