2017-11-11 1 views
1

Ich bin neu in Ulme und haben durch die Decode Bibliothek gelesen, beiElm Import von Js Bibliotheken

https://github.com/elm-lang/core/blob/eb6ecefb9e001a58746110cdda7e7b366e577b2f/src/Json/Decode.elm

Allerdings bin ich ein wenig verwirrt über die Leitung 55 sie eine Bibliothek machen, die scheint um mit einer Javascript-Datei (Elm.Kernel.Json) verknüpft zu werden, verwenden sie zusätzlich eine Variable wie Elm.Kernel.Json.decodeString, die mit einem JavaScript-Varable namens _json_decodeString in der entsprechenden Datei zu verlinken scheint.

  1. Wie haben sie eine js-Bibliothek in Ulme importiert?
  2. Wie beziehen sie die json Variablen mit denen in der Ulme-Datei?

Ziemlich sicher, dass ich etwas vermisse, aber nicht weiß was?

Antwort

4

Elm kompiliert zu JS und verlässt sich schließlich auf JS-Code, um zu arbeiten. Der Zugriff auf JS-Code ist jedoch stark eingeschränkt, um die Gewährleistung der Typsicherheit zu gewährleisten.

Also in der Praxis ist der einzige sanktionierte Weg zur Verwendung von JS über eine port.

Was Sie suchen, sind die Kern-Elm-Bibliotheken, und diese verwenden spezielle Techniken, um direkt auf JS-Bibliotheken zuzugreifen. Diese Techniken sind undokumentiert, da sie nicht befolgt werden sollten. Da der Code jedoch Open Source ist, ist Reverse Engineering möglich. Sie werden Bibliotheken finden, die diese Techniken im Internet verwenden (z. B. zu add missing web apis), aber Sie finden sie nicht aufgelistet unter http://package.elm-lang.org/.