Проблемы с шаблонами jQuery.Объект не поддерживает эту ошибку метода - PullRequest
0 голосов
/ 20 января 2011

Я изучаю шаблон в jquery.И получил пример кода, который я тестирую.Но, похоже, это не работает.

<html>
<head>
    <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js " type="text/javascript"></script>
    <script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.js" type="text/javascript" />
</head>

<body>

    <h2>ViewPage1</h2>

    <script id="movieTemplate" type="x-jquery-tmpl">
        <li><b>${Name}</b> (${ReleaseYear})</li>
    </script>

    <div id="movieList"></div>

    <script type="text/javascript">
            var movies = [
                { Name: "The Red Violin", ReleaseYear: "1998" },
                { Name: "Eyes Wide Shut", ReleaseYear: "1999" },
                { Name: "The Inheritance", ReleaseYear: "1976" }
                ];

            // Render the template with the movies data and insert
            // the rendered HTML under the "movieList" element
            $("#movieTemplate").tmpl(movies).appendTo("#movieList");
    </script>
</body>

При отладке я вижу, что проблема в методе .appendTo ().И я также вижу в intellisens, что этого метода там нет.

Что я сделал не так?

Ответы [ 2 ]

2 голосов
/ 20 января 2011

Кажется, проблема в определениях скриптов в заголовке:

<head>
    <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js " type="text/javascript"></script>
    <script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.js" type="text/javascript" />
</head>

Тег сценария должен иметь закрывающий тег </script>. По сути, ваш tmpl-скрипт не загружался. Я заметил, что это ошибка в примере tmpl, так что это не ваша вина. Если вы измените второй, чтобы он соответствовал первому, он будет работать нормально:

<head>
    <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js " type="text/javascript"></script>
    <script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.js" type="text/javascript"></script>
</head>

Пример: http://jsfiddle.net/UZ62w/

1 голос
/ 20 января 2011

Я почти уверен, что это связано с тем, что tmpl не возвращает объект jQuery. Попробуйте изменить свой js, чтобы он напоминал что-то вроде этого

var movies = [
            { Name: "The Red Violin", ReleaseYear: "1998" },
            { Name: "Eyes Wide Shut", ReleaseYear: "1999" },
            { Name: "The Inheritance", ReleaseYear: "1976" }
            ],
template = $("#movieTemplate").tmpl(movies);

$("#movieList").append(template);

edit: Вот jsfiddle , показывающий, что это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...