2017-01-02 22 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