Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.03.2014, 09:55
Интересующийся
Отправить личное сообщение для ascherbakov Посмотреть профиль Найти все сообщения от ascherbakov
 
Регистрация: 12.03.2014
Сообщений: 20

nodejs+express+partial проблема использования
Всем привет! Пожалуйста, подскажите в чем загвоздка?
В node я новичок. Поэтому прошу помощи у людей опытных.
вкратце задача состоит в следующем:
есть главная страница, которая грузится с помощью лэйаута, в который передаются некоторые параметры. Так же на главной есть кнопка. При нажатии на которую сервер формирует запрос к SQL базе и обрабатывает его. Результат запроса в виде таблицы я хочу подгрузить на главную, используя partial. Для этого в лэйауте добавил:
!=partial('test', table)
сам модуль test.jade выглядит так:
div table
для простоты в переменную table пока передаю строку 'test'
при нажатии на кнопку рендерю лэйаут:
res.render('layout', {table: 'test'});
при этом предполагаю, что при рендеринге лэйаута подгрузится patrial и ему передастся переменная table
Но вместо этого получаю ошибку еще при первой загрузке лэйаута:
undefined is not a function
Вот здесь: http://stackoverflow.com/questions/1...ess-in-node-js прочитал, что это работает только в express 2.x, у меня стоит express 3.5.0
Здесь: http://jsman.ru/express/#res-partial написано, что надо использовать через res.partial
На этом моменте у меня возникло непонимание, как надо делать правильно?
т.е. вместо
res.render('layout', {table: 'test'});
я должен делать так
res.partial('layout', {table: 'test'}); ???
тогда как указать лэйауту загрузить partial???
подскажите, пожалуйста как правильно работать с partial
или киньте ссылку на какой-нибудь пример?
Заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 20.03.2014, 10:09
Интересующийся
Отправить личное сообщение для ascherbakov Посмотреть профиль Найти все сообщения от ascherbakov
 
Регистрация: 12.03.2014
Сообщений: 20

Немного стало яснее:
вот здесь: http://stackoverflow.com/questions/5...press-with-ejs
вычитал что для использования в express 3.x вообще не используется больше partial(). Для этого надо использовать отдельные модули. Либо подключать файл как include:
include test.jade
добавил в лэйаут эту строку, в test.jade добавил:
div
'test'
И ура! на главной отображается див со строкой 'test'
Теперь вопрос: как передать в test.jade переменную из лэйаута?
или все переменные лэйаута доступны инклюдам по-умолчанию?
Ответить с цитированием
  #3 (permalink)  
Старый 20.03.2014, 10:47
Интересующийся
Отправить личное сообщение для ascherbakov Посмотреть профиль Найти все сообщения от ascherbakov
 
Регистрация: 12.03.2014
Сообщений: 20

Прошу прощения за мысли вслух.
Да, переменные доступны. Но как оказалось вся эта схема мне немного не подходит.
Теперь вопрос в следующем:
Есть форма, которая выводит некоторые данные из базы.
При выполнении
app.get('/', routes.main);
загружается главная страница:
var List = '<select name=\'Type\' size=1>' +
'<option value=0>param1</option>' +
'<option value=1>param2</option>';
res.render('index', { list: List});
в которую параметром передается вот такой вот комбобокс. Таже на странице имеется кнопка.
input(id='generate' type='submit' value='СФОРМИРОВАТЬ')
При нажатии на кнопку серверу передается запрос в выбранным параметром из комбобокса, в итоге выполняется:
app.get('/generate', routes.getData);
в getData сервер формирует запрос к базе, обрабатывает полученные данные, пихает их в переменную dataStr. Теперь эти данные мне нужно вывести в форму, делаю опять:
res.render('index', { dataTable: dataStr });
без передачи list: List - это важно! List - локальная переменная ф-и routes.main и глобально переменной я её делать не хочу.
В результате страница рендерится и естественно комбобокса на ней теперь нет.
Вопрос: как при нажатии на кнопку отрендерить только часть страницы? Чтобы кобобокс и кнопка остались на своих местах. Что для этого использовать?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема использования кавычек lar_i_sa AJAX и COMET 13 20.02.2013 14:33
Проблема использования библиотек1 0931454574 jQuery 1 30.06.2011 15:02