1

我想使用underscore.js獲取數組。innerHTML'each function'vs js file'each function'when using underscore.js

這是我的情況。

view.js

views.list = Backbone.View.extend({ 
     render: function(templateName) { 
     var template = _.template(templateName); 
     this.$el.html(template({result : this.collection.models})); 
     _.each(this.collection.models, function(model){ 
      console.log(model.get("id")); 
     }); 
     return this; 
     } 
    }); 

運行結果_.each(this.collection.models, function(model){console.log(model.get("id"));});

enter image description here

list.html

<div id="columns"> 
     <% _.each(result, function(model){ %> 
     <div id="<% model.get("id") %>" class="content"> 
      <a href="<% model.get("url") %>"> 
      <figure> 
       <img src="<% model.get("imgSrc") %>"> 
       <figcaption><% model.get("title") %></figcaption> 
      </figure> 
     </div> 
     <% }); %> 
     </div> 

enter image description here

我發了參數this.collection.modelresult參數,所以我覺得上面的可執行代碼和可執行代碼我寫HTML是相同的,但運行結果是不一樣的。

有什麼區別?

+1

代替執行'VAR模板= _.template(TEMPLATENAME)的;'每次渲染時間被調用,存儲模板功能作爲'模板'財產的視圖 –

+0

@TJ好的謝謝:)我今天知道一個 –

回答

2

您需要在輸出值的模板中使用表達式。取而代之的

<div id="<% model.get("id") %>" class="content"> 

您需要:

<div id="<%- model.get("id") %>" class="content"> 

docs

+0

哇!非常感謝。我知道<%,<%= just shortag但是,我注意到每個標籤的行爲不同。 –