2017-01-02 24 views
0

我寫一個sprity template和我的代碼生成分號:如何防止把手放在分號的JS對象

{{#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對象?

+0

您確定'''不在您的模板中嗎? –

+0

是的我是,這是我的模板的副本/過去。我認爲有一個自動更正或默認情況下在句柄中啓用的東西。不是? – dagatsoin

回答

0

這可能有點困難。你可能知道的把手更適合於呈現HTML比Javascript ...

我相信Handlebars插入這個分號,因爲它看起來像你輸出一個匿名的Javascript函數,並且這些函數需要終止。

通常,我會嘗試通過用一個if/else塊代替3組{{#if dpi}}來獲得對模板的更多控制權,以便您可以編寫兩個完整的案例。這將解決退貨問題。然後你需要重新格式化你的代碼,以阻止Handlebars認爲你正在編寫一個匿名函數。

請參閱https://github.com/wycats/handlebars.js/commit/25b8e314afa695125ef769283d43831c20c77e21