2

以下代码:

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>

我必须改变什么才能让它工作?现在,该功能甚至没有执行。其他一切都有效。

4

2 回答 2

4

你只需要稍微调整一下调用,改变这个:

${getName()}

对此:

${this.getName()}

你可以在这里测试一下

于 2010-10-24T14:32:39.567 回答
1

尝试附加error: fn回调,$.ajax看看可能有什么问题。也许 JSON 格式不正确(您可以使用 jsonlint.org 进行检查)。如果success: fn甚至没有被调用,则说明有问题(404、JSON 解析错误等)。

此外,如果您从同一个域请求 JSON,JSONP 可能有点矫枉过正(例如尝试类似$.getJSONor dataType: 'json'

于 2010-10-24T13:54:14.803 回答