javascript
  • backbone.js
  • underscore.js
  • marionette
  • 2012-12-15 62 views 0 likes 
    0

    我是多級嵌套結構視圖的最後一步 - 復​​合視圖的集合。帶有underscore.js和Backbone.marionette的模板引導傳送帶

    但是,基於圖像信息陣列,我試圖渲染引導程序輪播,其中具有最高priority_order的圖像被賦予默認的「項目活動」類。

      <%=_.each(images, function(x){ 
           if (x.priority_order = 1) 
           {return 
    
            "<div class='item active'> 
            <img class='responsive-image' src=" + x.image + " alt=''> 
            <div class='container'> 
             <div class='carousel-caption'> 
             <h1>" + x.title + "</h1> 
             </div> 
            </div> 
            </div>" 
           } 
           else 
           {return 
    
            "<div class='item'> 
            <img class='responsive-image' src" + x.image + " alt=''> 
            <div class='container'> 
             <div class='carousel-caption'> 
             <h1>" + x.title + "</h1> 
             </div> 
            </div> 
            </div>"} 
          })%> 
    

    注:以上僅僅是手動適合打印這個職位。在實際的代碼中,換行符被刪除,否則你會得到:

    Uncaught SyntaxError: Unexpected token ILLEGAL

    當一切都說過和做過,這仍然不能正常顯示。我錯過了什麼,或者可以強調這樣做嗎?

    回答

    3

    你寫它的方式是語法錯誤的誘餌。 (另外,使用字符串字面量在很大程度上失去了使用模板的目的,不是嗎?)

    我會用代碼塊<% %>的邏輯部分,<%= %>的渲染部分,並具有HTML爲標記,不作爲一個字符串文字:

    <% _.each(images, function(x){ %> 
        <% if (x.priority_order == 1){ %> 
        <div class='item active'> 
         <img class='responsive-image' src=" + x.image + " alt=''> 
         <div class='container'> 
         <div class='carousel-caption'> 
          <h1> <%= x.title %></h1> 
         </div> 
         </div> 
        </div> 
        <% } %> 
    <%  } %> 
    

    此外,這是一個錯字 - if (x.priority_order = 1) - 應該是平等的運營商==

    JSFiddle

    就像一個音符 - 如果你非得推杆標記在字符串文本中由於某種原因,那麼你就不能有字符串中的新行。它必須是內聯的像this

    print "<div class='item active'><img class='responsive-image' src='" + x.image + "' alt=''><div class='container'><div class='carousel-caption'><h1>" + x.title + "</h1></div></div></div>"; 
    

    或追加與+字符串,如:

    print "<div class='item active'>" + 
        "<img class='responsive-image' src='" + x.image + "' alt=''>" + 
         "<div class='container'>" + 
          "<div class='carousel-caption'>" + 
           "<h1>" + x.title + "</h1></div></div></div>"; 
    
    +0

    謝謝!請嘗試一下並回來接受這一點。我沒有意識到underscore.js中的代碼阻塞部分。避免字符串絕對是一個好主意。 – snakesNbronies

    相關問題