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));

問題は、parameter(one、two)を使用して関数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 に答える