jquery-tmpl - 模板功能不起作用

时间:2010-10-24 13:28:12

标签: javascript jquery templates jquery-templates

以下代码:

jQuery(document).ready(function($) {
    function getBooks() {
        var query = "ajax.php?do=allbooks";
            $.ajax({
                dataType: "jsonp",
                url: query,
                jsonp: "callback",
                success: showBooks
            });
    }

    function showBooks(data) {
    $("#bookTmpl").tmpl(data, { 
        getName: function() {
          return 'bla';
        }
    }).appendTo( "#test" ); 
    }

    getBooks();
});

我要做的是在我的模板中使用getName() - 函数。

让我们假装我的模板如下:

<script id="bookTmpl" type="text/x-jquery-tmpl">
    <li>
    ${title} by ${author}<br />
    Rating: ${rating} -> ${getName()}
    </li>
</script>

我需要更改哪些才能使其正常工作?现在,该功能甚至没有执行。其他一切都有效。

2 个答案:

答案 0 :(得分:4)

你只需稍微调整一下,改变一下:

${getName()}

对此:

${this.getName()}

You can test it out here

答案 1 :(得分:1)

尝试在error: fn中附加$.ajax回调,看看可能出现的问题。也许JSON格式不正确(您可以使用jsonlint.org查看)。如果甚至没有调用success: fn,则出现错误(404,JSON解析错误等)。

此外,如果您从同一个域请求JSON,JSONP可能有点过分(例如尝试$.getJSONdataType: 'json'