0

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

应该做什么?请帮忙。谢谢你。

4

1 回答 1

0

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

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

http://jsfiddle.net/F38dg/

于 2013-01-24T14:31:05.137 回答