2014-01-13 7 views
0

У меня есть служба, которую я запрограммировал для генерации новостей. Существует ATM около 30 типов новостей, каждый из которых имеет разный HTML-код для отображения. Для каждого случая я получаю из JSON, возвращаемого AJAX, только для переменных частей, затем генерирует требуемый HTML в JS и добавляет его в контейнер.Json и html display

Мне было очень тяжело работать, и боль отлаживалась. Много HTML, созданных в JS, выглядит для меня как плохой. Но я хочу, чтобы ответ с сервера был настолько легким, насколько это возможно, поэтому я не хочу каждый раз отправлять весь HTML-код, гораздо лучше отправить обратно только немного JSON.

Любая идея о том, как я должен это делать?

Спасибо заранее!

+1

Использовать файлы шаблонов? – putvande

+0

Можете ли вы разместить свой код? – Latheesan

+1

Да ... используйте JS-шаблонный движок, такой как Mustache, тот, который находится в underscores.js, Handlebars (примечание: я знаю об этих вещах, но на самом деле не использовал). Много HTML, созданное JS, НЕ является плохим по своей сути ... оно * может быть очень хорошим, если все сделано правильно. –

ответ

3

Используйте хороший шаблон двигателя, например http://handlebarsjs.com/. У них также есть отладочные обработчики

+0

Спасибо, это именно то, что мне нужно ... Я уже использовал Smarty в прошлом, с PHP, поэтому не будет трудно учиться и использовать что-то вроде рулей. Это лучше всего здесь? –

+1

, который лучше всего сказать сложно, но я бы сказал, что он один из хороших :) Может быть, это поможет вам немного http://garann.github.io/template-chooser/ –

+0

Хорошо, я прочитал много теперь о сравнении этих инструментов, похоже, что Dust.js на самом деле лучший, но Handlebars тоже очень хорош. Вот еще один вопрос: смогу ли я сделать то, что я выставил в своем первом посте, используя Angularjs или такое? –

1

Простым способом является использование угловых директив. Это сделает html хорошо организованным и легко читаемым (если вы моделируете JSON на стороне клиента).

Угловые могут иметь функции, которые помогут в вашем случае (как правило, в новостях, сайтах блогов).

+0

Да, но использование Angular просто для этого немного «перебор», я думаю ... Кроме того, я не думаю, что смогу заставить его работать с проектом, над которым я сейчас работаю, старым проектом с большим количеством странных вещи... –