Отобразить текст ответа JSON из ajax в шаблон jQuery - PullRequest
1 голос
/ 20 июня 2011

Мне нужно передать ответ от вызова ajax в шаблон jquery. Ответ json не является деформированным. Я проверил это с помощью операторов оповещения в ajax fn. Когда ответ передается шаблону, он не Например, когда я использую $ {field1} в шаблоне, в браузере ничего не отображается. В браузере не отображаются сообщения об ошибках. Может ли кто-нибудь помочь мне решить эту проблему?

Json ответ от сервера:

    { 
        "field1": 23432434, 
        "field2": "sometext",
    }

Ajax FN:

    function getinfo(uri)
    {
        jQuery.ajax({
        url:    'http://{{request.META.SERVER_NAME}}'+uri,
        success: function(info) {
                  return info;
              },
        async:   false,
        dataType: 'jsonp'
        });
     }

Шаблон:

    <script id="infoTemplate" type="text/x-jQuery-tmpl">
            <div>${field1}</div>
   </script>

Код для привязки JSON к шаблону:

<script id="Template1" type="text/x-jQuery-tmpl">      
      {{tmpl(getinfo(uri)) "#infoTemplate"}} 
</script>

Примечание. Я не могу использовать следующий метод для привязки JSON к шаблону. Это долгая история.

function getinfo(uri)
{
    $.getJSON('http://{{request.META.SERVER_NAME}}'+uri, function(data) {
         $("#infoTemplate").tmpl(data).appendTo("#somedivid");
   });
}

1 Ответ

0 голосов
/ 20 июня 2011

Это не так, как обратные вызовы работают. Вы возвращаете info в функцию обратного вызова, а не getinfo.

Вы должны либо сделать что-то, как вы предложили после, либо сохранить результат от вызова ajax в глобальной переменной и через некоторое время вызвать функцию tmpl, чтобы быть уверенным, что вы уже получили ответ от вызова ajax. Первый путь - это путь.

...