我最近一直在浏览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>
应该怎么做?请帮助。谢谢你。
将这些值添加到模板数据中。作用域在with语句中执行,所以这些变量对函数的作用域是不可见的。
var templateData = {
test_var : test_var,
test_func : test_func,
listTitle: ...
}
http://jsfiddle.net/F38dg/