2014-08-14 3 views
0

Я звоню на свой сервер каждый раз, когда пользователь вводит/удаляет ключ в окне поиска, извлекает большой список списков в JSON, через который я прохожу через JS. Чтобы получить данные на моем шаблоне, я добавляю HTML & CSS с помощью JQuery. Вот пример, чтобы показать, что я имею в виду ...Как добавить CSS/HTML к вызову Ajax

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#input-search').keyup(function(data) { 
     var search = $("#input-search").val(); 
     $.get("/search/", { search:search }, function(search){ 
      var matches = (search.search); 
      for (match in matches){ 
       console.log(matches[match].full_name); 
       $(".searchable-container").append("<div>").addClass("items col-xs-12 col-sm-12 col-md-6 col-lg-6").append("<div>").addClass("info-block block-info clearfix").append("<div>").addClass("square-box pull-left").append("<span>").addClass("glyphicon glyphicon-user glyphicon-lg").append("<h5>") 
      }}); 
     }); 
    }); 
</script> 

Я чувствую, что это не самый лучший способ, чтобы стиль мои возвращаемые данные, как это требует много проб и ошибок, и это выглядит некрасиво. Например, используя шаблоны Jinja, я могу просто добавить {{ curly braces }}, и он называет мои данные там, где это необходимо. Мне просто интересно, есть ли что-то, что мне не хватает, или лучший способ сделать то, что я делаю, учитывая, что я новичок в JQuery.

+3

Почему вы не используете шаблоны? Есть некоторые действительно легкие там, например. дот-шаблон. –

+1

Согласовано. Используйте библиотеку шаблонов. Я предпочитаю Mustache - https://github.com/janl/mustache.js – Michael

+0

, когда я делаю подобные вещи, я часто использую блок '

ответ

0

Я предлагаю вам не добавлять непосредственно объект. Просто создайте его, а затем добавьте его. Что-то вроде:

var obj1 = $("<div>"); 
var obj2 = $("<div>"); 

obj1.addClass(...); 
... 
$(".searchable-container").append(obj1); 
$(".searchable-container").append(obj2); 

Но это путь ИМО.

+0

Я вижу, как это полезно, но есть это действительно практический способ добавления объектов. это не так, как если бы это был ресурс, но просто добавляет лишний объем кода. IMO –

+0

В качестве альтернативы вы можете попробовать создать экземпляр полной структуры, а затем просто клонировать его с помощью функции jQuery для сохранения экземпляров объектов, но где-то вы должны объявить структуру. Вы можете попытаться объявить его в разделе html, скрыть его и затем клонировать для заполнения вашими данными, но где-то он должен быть объявлен даже при использовании шаблона. – ziotob

Смежные вопросы