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 に答える