Возник вопрос по работе с формами на стороне сервера (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, время: 16:48. |