Хеш роутинг JS
Здравствуйте!
Подскажите как реализовать такое: В адресной строке: http://site.ru/#/search/?q=test&cat_id=5 или http://site.ru/#/page/?name=test Т.е роутинг по хешу и последущая загрузка контента через AJAX ? Наверняка уже есть готовые решения, что лучше использовать? Спасибо за внимание ! |
о да.. вот целая "куча"
|
melky, спасибо, то что нужно !
И ещё вопрос: у меня данные приходят в json, наверное лучше будет использовать какой-нибудь js шаблонизатор для вывода данных ? |
можно испльзовать какой-нибудь код для управления роутером ^_^
|
я остановился на https://github.com/kulikov/route-js
если делать примерно так: Route.map('#/search/:name').to(function() { $.ajax({ type: 'GET', url: '/search', data: { 'name' : this._getParam('name') }, success: function(msg){ $('#content').html(''); $.each(msg.data, function (i, row) { tmpl = '<div class="row">'; tmpl += '<div class="title">'+row.title+'</div>'; tmpl += '<div class="body">'+row.text+'</div>'; tmpl += '</div>'; $('#content').append(tmpl); }); } }); }); правильно будет или можно лучше ? |
только из цикла операции с DOM уберите.
success: function(msg){ $('content').empty(); *!* var a = $(); */!* $.each(msg.data, function (i, row) { tmpl = '<div class="row">'; tmpl += '<div class="title">'+row.title+'</div>'; tmpl += '<div class="body">'+row.text+'</div>'; tmpl += '</div>'; *!* a.append( tmpl ) */!* }); *!* $('content').append(a); */!* } |
melky ок, спасибо!
|
melky, хм не получается добавить DOM элемент в #content $('#content').append(a);, хотя по идеи всё правильно, в чём может быть проблема !?
|
var a = $();это что за безобразие? |
bayrach,
success: function(msg){ $('#content').empty(); var tmpl = ''; $.each(msg.data, function (i, row) { tmpl += '<div class="row">'; tmpl += '<div class="title">'+row.title+'</div>'; tmpl += '<div class="body">'+row.text+'</div>'; tmpl += '</div>'; }); $('#content').append( tmpl ); } Может так ? |
Часовой пояс GMT +3, время: 20:10. |