2017-05-16 13 views
0

を投げているI次のmixin持っている:私はこれを行うと、私が取得パグコードブロックは、予期しないトークンエラー

block content 
    .grid 
     - 
      var colors = ['red', 'pink', 'purple'] 
      each color in colors 
       .cell.cell-6 
        for (let i = 0; i < 10; i++) 
         +color(i, color) 

mixin color(c, color) 
    if (c == 0) 
     div(class=`${color}-50`) red-50 
    else if (c == 5) 
     div(class=`${color}`) red 
    else 
     div(class=`${color}-${c*100}`) red-#{c*100} 

が、私はその後、ミックスインを使用するには、次のコードを使用します次のエラー:

SyntaxError: Unexpected token (186:5) 
    at Parser.pp$4.raise (c:\Users\rnaddy\Documents\vscode\projects\web-framework\node_modules\acorn-globals\node_modules\acorn\dist\acorn.js:2488:13) 
    at Parser.pp.unexpected (c:\Users\rnaddy\Documents\vscode\projects\web-framework\node_modules\acorn-globals\node_modules\acorn\dist\acorn.js:623:8) 
    at Parser.pp.semicolon (c:\Users\rnaddy\Documents\vscode\projects\web-framework\node_modules\acorn-globals\node_modules\acorn\dist\acorn.js:600:59) 
    at Parser.pp$1.parseExpressionStatement (c:\Users\rnaddy\Documents\vscode\projects\web-framework\node_modules\acorn-globals\node_modules\acorn\dist\acorn.js:1025:8) 
    at Parser.pp$1.parseStatement (c:\Users\rnaddy\Documents\vscode\projects\web-framework\node_modules\acorn-globals\node_modules\acorn\dist\acorn.js:780:22) 
    at Parser.pp$1.parseTopLevel (c:\Users\rnaddy\Documents\vscode\projects\web-framework\node_modules\acorn-globals\node_modules\acorn\dist\acorn.js:672:23) 
    at Parser.parse (c:\Users\rnaddy\Documents\vscode\projects\web-framework\node_modules\acorn-globals\node_modules\acorn\dist\acorn.js:529:15) 
    at Object.parse (c:\Users\rnaddy\Documents\vscode\projects\web-framework\node_modules\acorn-globals\node_modules\acorn\dist\acorn.js:3378:37) 
    at reallyParse (c:\Users\rnaddy\Documents\vscode\projects\web-framework\node_modules\acorn-globals\index.js:22:16) 
    at findGlobals (c:\Users\rnaddy\Documents\vscode\projects\web-framework\node_modules\acorn-globals\index.js:35:11) 

問題は-コードブロックにあります。何らかのフォーマットを間違えているのですか?ブロックコードはどのようにすればよいですか?

答えて

2

それはJSでパグをミックスするのは容易ではないですが、ここでは2つの問題があります:「 - 」

  • JSのexpessionによって従わなければならないが(私の知る限りでは)同じラインである
  • がありますノー "を" PUG自体には次のよう

ので、作業コードを記述する必要があります(私は思う):

codepen

mixin color(c, color) 
    if (c == 0) 
     div(class=`${color}-50`) red-50 
    else if (c == 5) 
     div(class=`${color}`) red 
    else 
     div(class=`${color}-${c*100}`) red-#{c*100} 

block content 
    .grid 
     - var colors = ['red', 'pink', 'purple'] 
      each color in colors 
       .cell.cell-6 
        - var i = 0; 
        while i < 10 
         +color(i, color) 
         - i++ 
+2

pugにはforループがあります:https://pugjs.org/language/code.html、そのページには、 '-'をそれ自身の行に置くと、そのようなブロックを行うことができます。 –

+0

私の問題は、 'for'の前に' -'を追加するだけでした:) –

+0

ああ、私はそれを覚えていないことを覚えていませんでした:) –

関連する問題