Ich habe eine normale Ansicht Funktion view : Model -> Html Msg
.Elm erhalten Html Nie
Jetzt muss ich aus dieser Ansicht Produkt ein Html Never
, die entfernt nur alle Event-Handler.
Meine erste Idee war, Html.map
mit einer Funktion Msg -> Never
zu verwenden, aber ich weiß nicht, wie man es definiert, da Never
keine Werte hat.
Gibt es einen Trick, diese Arbeit zu machen?
Casting 'Html Msg' in' Html Never' öffnet sich ein Fenster für die mit möglicherweise gebrochene Ereignis-Listener HTML Knoten, die eine schlechte Idee ist (Speicherleck oder unerwartetes Verhalten). Sie müssen eine native Funktion schreiben, um Knotenfakten (Ereignislistener) zu überprüfen und sie aus der JavaScript-Darstellung von virtuellen DOM-Knoten zu entfernen, so dass dies tatsächlich "funktioniert" und alle "Msg" für die Knoten entfernt. ** TL; DR: ** Was Sie wollen, ist eine gefährliche Idee und Elm erlaubt das nicht aus einem bestimmten Grund. Könnten Sie bitte weitere Einzelheiten zu den Endzielen mitteilen? – halfzebra
Danke @halfzebra. Ich muss zugeben, dass ich Ihren Kommentar nicht vollständig verstanden habe ... Jedenfalls versuche ich, https://github.com/rupertlssmith/elm-server-side-renderer zu verwenden, um eine Zeichenfolge zu drucken, die die ursprünglich gerenderte Version meiner Ansicht enthält ; Die Bibliothek verwendet immer 'Html Never'. Ich wollte eine Möglichkeit, meine 'Html Msg' in eine' Html Never' zu konvertieren, damit sie dort verwendet werden kann. – marcosh
Ich nehme an, dass Sie einige der Front-End-Code für serverseitige Rendering wiederverwenden möchten. Soweit ich weiß, existiert serverseitiges Rendering für Elm nur als Experiment (für den Moment). Ansichten mit 'Html Msg'-Signatur auf der Serverseite zu haben, ist etwas merkwürdig, da sie keine Ereignisse ausgeben sollen. – halfzebra