簡體   English   中英

如何防止把手把分號放在JS對象中

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM