Xhtml.of_string_unsafe отключить по клику
У меня проблема, вот короткий пример:
Xhtml.of_string_unsafe(Xhtml.to_string(<button onclick={_->jlog("coucou")}>bouton</button>))
И когда я нажимаю на кнопку, ничего не происходит...
Есть ли ошибка в опа?
2 ответа
Первый элемент ответа: для ускорения загрузки страниц Opa загружает сначала HTML-код и откладывает теги сценария (загружая весь код на стороне клиента) до конца страницы. В обычном случае использования действия onclick затем делегируются до окончания загрузки кода JS. Это не может произойти здесь, и ваш пример фактически показывает ошибку JS: он пытается использовать jQuery, который еще не загружен (он загружается как часть файла all.js).
Вместо этого, если вы вставите этот небезопасный XHTML динамически, то есть после загрузки JS, вы не получите ошибку. Пример кода:
page() =
btn = Xhtml.of_string_unsafe(Xhtml.to_string(<button onclick={_ ->jlog("coucou")}>bouton</button>))
<span id="toto" onready={_ -> Dom.transform([#toto <- btn])} />
server = one_page_server("Test", page)
Тем не менее, это все еще не работает. Я понятия не имею, почему еще.
Я думаю, что это "нормально", преобразование XHTML в базовую строку не может содержать обработчики событий...
Onclick не сериализуется в строку.
Кто-нибудь может подтвердить?