【问题标题】:jquery-tmpl - template function not workingjquery-tmpl - 模板功能不起作用
【发布时间】:2023-03-14 07:38:01
【问题描述】:

以下代码:

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>

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

【问题讨论】:

    标签: javascript jquery templates jquery-templates


    【解决方案1】:

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

    ${getName()}
    

    到这里:

    ${this.getName()}
    

    You can test it out here.

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 对不起,我有点误读了你的问题。您的模板是否有效(方法除外)?
      猜你喜欢
      • 1970-01-01
      • 2013-02-27
      • 2013-03-05
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多