Возник вопрос по работе с формами на стороне сервера (koa/express). Требуется програмный механизм создания, валидации, рендеринга формы. Приведу пример из php. Там есть такая штука, как Zend_Form, которая все это умеет. Выглядит как-то так
$form = $this->getBaseForm();
$form
->addElement('text', 'title',
array(
'label' => 'Название',
'required' => true
)
)
->addElement('textarea', 'text',
array(
'label' => 'Текст',
'cols' => 65,
'rows' => 2
)
)->addElement('file', 'image',
array(
'label' => 'Изображение 960x340'
)
)
->addElement('text', 'link',
array(
'label' => 'Ссылка для перехода'
)
)->addElement('submit', 'submit',
array(
'label' => 'Сохранить'
)
);
в шаблоне Код:
{$form} |
nerv_,
Сам не использовал, но выглядит симпатично https://github.com/caolan/forms |
destus, спасибо, суть ты уловил верно.
Цитата:
Цитата:
Скажу так: первый, кто запилит подобный пакет, будет молодец и соберет мнгого лайков на гитхабе. --- UPD В зенде на мой взгляд достаточно хорошее продуманное апи, можно писать на его основе https://framework.zend.com/manual/1....uickstart.html По сути требуется объединить ряд пакетов: - создание (писать руками) - парсинга (formidable?) (не уверен, что этот пункт нужен) - валидации (использовать сторонние пакеты, предусмотреть асинхронную валидацию) - рендеринга (добавить возможность использовать движка шаблонов) в одно удобное апи |
nerv_
1) Возьми json-схему, на стороне сервера валидируй ею данные, которые пришли, на стороне клиента -- возьми генератор формы по ней (тысячи их, и под ангуляр, и под реакт, и под jquery, и вообще под что угодно). 2) Совмести. 3) ?????? 4) PROFIT! |
Цитата:
2) не вижу тысяч :) UPD После долгих поисков по npm нашел несколько: https://www.npmjs.com/package/jsonschema2html https://www.npmjs.com/package/jsonschema2form-nested https://www.npmjs.com/package/json-editor https://www.npmjs.com/package/iso-form https://github.com/brutusin/json-forms |
Цитата:
Цитата:
|
Цитата:
Цитата:
alert(5/1120); у меня, кстати, написано 170k результатов |
Цитата:
|
Цитата:
|
Цитата:
|
Кто то пробовал сделать сохранения файла с сервера через js с помощью потока? Такое вообще реально?
Т.е получил chunk на клиенте, сохранил на диск, потом получил еще один дописал до предущего и т.д пока весь файл не сохранит. Т.е по сути как в ноде только в браузере |
Цитата:
|
Цитата:
|
Так и не нашел как сделать, то о чем писал выше, походу нельзя сделать что то такое
|
Цитата:
|
trikadin, я и спрашиваю потому что не нашел сам, еще проблема с file api что там прогресс скачивания не показывает(либо я криворукий)
|
Парни, подскажите софтину или модуль для ноды, как jsbeautifiler, но рекурсивно во всех папках.
|
Цитата:
файлы можно задать по маске |
Благодарю
|
Localbitcoins заблокирован роскомнадзором!
Новость: http://forklog.com/v-rossii-zablokir...localbitcoins/ А ботов так просто не заблокируешь: https://bitcointalk.org/index.php?topic=1344373.0 |
возможно ли остановить выполнение команды (например, запущенный цикл) в консоли google chrome (стандартные ctrl+c, ctrl+z не помогают)?
|
kobezzza, те проекты над которыми ты работаешь можно как то посмотреть?)
Просто интересно на сколько быстро они рендерятся, грузятся) |
Цитата:
И вообще, приходи ко мне работать, тоже прокачаешься. |
Цитата:
Сейчас замерил: полная загрузка страницы где то пол секунды / секунда на быстром инете; Первичный рендер: 130-200мс (время до полной загрузки, но после которого уже можно работать). Цитата:
Цитата:
|
Цитата:
А вообще я бы с удовольствием свалил бы с этой работы, но пока нет возможности поменять работу) |
достаточно ли будет
Math.random() * Date.now();для генерации уникального ключа по стороне клиента ? |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Poznakomlus, не совсем понял к чему тут XPath ?)
|
..
|
cyber, а WeakMap не устраивают?
|
cyber, не парься, возьми uuid.
|
trikadin, Erolast, у меня есть атрибут на дом елементе с id, например
<div> <ul> <li data-id="1"></li> <li data-id="2"></li> </ul> </div> и обработчик на клик которые вeсит на div например и мапа
div.onclick = function ({target}) {
// проверки и т.д
let functionHandler = weekMap.get(target.dataset.id);
functionHandler();
}
а тащить либу ради этого как то не асй что ли) П.с держать ссылку на DOM элемент не вариант |
Цитата:
Цитата:
div.onclick = function (e) {
var el = e ? e.target : window.event.srcElement;
while (el != this) {
if (/*условие*/) {
//работаем
break;
}
el = el.parentNode || el.parentElement;
}
};
|
Poznakomlus, я знаю что так можно, но в даном случае не прокатит из того что добавляю костыли в уже написанный код)
|
короче можно только по id и я могу генерировать эти id ))
|
Цитата:
function b(a){return a?(a^Math.random()*16>>a/4).toString(16):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,b)}
alert(b());
|
trikadin, спасибо)
МОжешь расшифровать смысел этого кода? a^Math.random()*16>>a/4нафига нам смещение битов? |
| Часовой пояс GMT +3, время: 23:19. |