需要Underscore.js知识

时间:2013-01-18 11:37:14

标签: javascript underscore.js

我最近一直在通过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> 

该怎么办?请帮忙。谢谢。

1 个答案:

答案 0 :(得分:0)

将值添加到模板数据中。范围在with语句中执行,因此这些变量对函数的范围不可见。

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

http://jsfiddle.net/F38dg/