我最近一直在通过underscore.js。我必须在result()
中发送参数 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 :(得分:0)
将值添加到模板数据中。范围在with语句中执行,因此这些变量对函数的范围不可见。
var templateData = {
test_var : test_var,
test_func : test_func,
listTitle: ...
}