Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.09.2011, 00:13
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

Хеш роутинг JS
Здравствуйте!
Подскажите как реализовать такое:

В адресной строке:
http://site.ru/#/search/?q=test&cat_id=5
или
http://site.ru/#/page/?name=test

Т.е роутинг по хешу и последущая загрузка контента через AJAX ?
Наверняка уже есть готовые решения, что лучше использовать?

Спасибо за внимание !
Ответить с цитированием
  #2 (permalink)  
Старый 16.09.2011, 08:28
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

о да.. вот целая "куча"
Ответить с цитированием
  #3 (permalink)  
Старый 19.09.2011, 08:25
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

melky, спасибо, то что нужно !

И ещё вопрос: у меня данные приходят в json, наверное лучше будет использовать какой-нибудь js шаблонизатор для вывода данных ?
Ответить с цитированием
  #4 (permalink)  
Старый 19.09.2011, 09:08
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

можно испльзовать какой-нибудь код для управления роутером ^_^
Ответить с цитированием
  #5 (permalink)  
Старый 19.09.2011, 11:02
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

я остановился на 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);
                    });
            }
        });
});


правильно будет или можно лучше ?

Последний раз редактировалось Andrei, 20.09.2011 в 18:45.
Ответить с цитированием
  #6 (permalink)  
Старый 20.09.2011, 10:42
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

только из цикла операции с 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);
*/!*
            }
Ответить с цитированием
  #7 (permalink)  
Старый 20.09.2011, 10:55
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

melky ок, спасибо!
Ответить с цитированием
  #8 (permalink)  
Старый 20.09.2011, 18:42
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

melky, хм не получается добавить DOM элемент в #content $('#content').append(a);, хотя по идеи всё правильно, в чём может быть проблема !?

Последний раз редактировалось Andrei, 20.09.2011 в 18:45.
Ответить с цитированием
  #9 (permalink)  
Старый 21.09.2011, 10:17
Аспирант
Отправить личное сообщение для bayrach Посмотреть профиль Найти все сообщения от bayrach
 
Регистрация: 16.01.2011
Сообщений: 71

var  a = $();
это что за безобразие?
Ответить с цитированием
  #10 (permalink)  
Старый 21.09.2011, 17:09
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

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 );
            }


Может так ?
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28
Срочно JS developer okp Работа 13 23.08.2011 16:16
Не получается передать переменную из JS в PHP Lion_astana AJAX и COMET 2 23.11.2010 17:23
помогите задать переменную в js bsgroupua Общие вопросы Javascript 3 01.02.2010 18:28
Самая лучшая книга по JS? ulandj Оффтопик 2 06.04.2009 11:35