2013-01-18 21 views
0

我最近一直在通過underscore.js。我要送()的結果參數Underscore.js知識要求

result_.result(object, property) 

這裏是我的代碼:

  var template = _.template($('#item-template').html()); 
      var templateData = { 
      listTitle: "Olympic Volleyball Players", 
      listItems: [ 
      { 
       name: "Misty May-Treanor", 
       hasOlympicGold: true, 
       links : "http://www.facebook.com" 
      }, 
      { 
       name: "Kerri Walsh Jennings", 
       hasOlympicGold: true 
      }, 
      { 
       name: "Jennifer Kessy", 
       hasOlympicGold: false 
      }, 
      { 
       name: "April Ross", 
       hasOlympicGold: false 
      } 
      ] 
     }; 
     var test_var = {name:'hello', func: test_func} 
     var test_func = function(one, two){return one+two;} 
      $('#target').append(template(templateData)); 

問題是我不能調用一個函數test_func與參數(一,二),反正是有執行函數與它的參數?

這裏是模板:

  <script type="text/html" id="item-template"> 
       <h2 class="hello"><%= listTitle %></h2> 
       <% _.each(listItems, function(value, key, list){%> 
       <% if(value.hasOlympicGold){ %> 
       <% if(value.links !== undefined){ %> 
       <li>Name: <a href="<%= value.links %>"><%=value.name%></a></li> 
       <% } else {%> 
       <li>Name: <%=value.name%></li> 
       <%= _.result(test_var,'func')%> 
       <% } %> 
       <% } %> 
       <% }) %> 
       </script> 

應該怎樣做?請幫忙。謝謝。

回答

0

將這些值添加到模板數據中。範圍在with語句中執行,所以這些變量對函數的作用域不可見。

var templateData = { 
    test_var : test_var, 
    test_func : test_func, 
    listTitle: ... 
} 

http://jsfiddle.net/F38dg/

+0

如果你不想templateData這些對象污染創建一個對象,把所有三個值中,並通過新的對象。例如 'data = {test_var:test_var,test_func:test_func,templateData:templateData}' – Shanimal