У меня есть функция нормального просмотра view : Model -> Html Msg
.Elm получить html Никогда
Теперь мне нужно, чтобы продукт с этого вида Html Never
, который просто удаляет все обработчики событий.
Моя первая идея состояла в использовании Html.map
с функцией Msg -> Never
, но я не знаю, как ее определить, так как Never
не имеет значений.
Есть ли трюк, чтобы сделать эту работу?
Кастинг 'Html Msg' в' Html Never' открывает окно для наличия узлов HTML с возможно сломанными прослушивателями событий, что является плохой идеей (утечка памяти или непредвиденное поведение). Вам придется написать собственную функцию для проверки фактов узлов (прослушивателей событий) и удалить их из представления Java виртуальных узлов DOM, так что это фактически «работает» и удаляет все «Msg» для узлов. ** TL; DR: ** то, что вы хотите, является опасной идеей, и Элм не допускает этого по какой-то причине. Не могли бы вы поделиться более подробной информацией о конечных целях? – halfzebra
Спасибо @halfzebra. Я должен признать, что я не совсем понимаю ваш комментарий ... Во всяком случае, я пытаюсь использовать https://github.com/rupertlssmith/elm-server-side-renderer для печати строки, содержащей исходную визуализированную версию моего представления ; библиотека всегда использует 'Html Never'. Мне нужен способ конвертировать мой «Html Msg» в «Html Never», чтобы его можно было использовать там. – marcosh
Я предполагаю, что вы хотите повторно использовать некоторые из интерфейсных кода, которые вы имеете для рендеринга на стороне сервера. Насколько мне известно, серверный рендеринг для Elm существует только как эксперимент (на данный момент). Наличие представлений с надписью «Html Msg» на стороне сервера немного странно, потому что они не должны излучать какие-либо события. – halfzebra