[英]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.