首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Elm反应器将Elm嵌入HTML中?

用Elm反应器将Elm嵌入HTML中?
EN

Stack Overflow用户
提问于 2016-12-26 16:22:39
回答 3查看 1.8K关注 0票数 7

所以我要一起试试埃尔姆和WebRTC。然而,对于WebRTC,我需要一些javascript的互操作。因此,我为WebRTC和main.js创建了一个包含所需脚本的main.js。

不过,我用的是榆树反应堆。这太好了。但是没有main.js。我可以用elm-make创建它,但是我必须手动更新它。

那么,有什么方法可以让榆树反应堆和嵌入式榆树一起工作呢?

注:我正在使用榆树0.18,最新的写作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-28 17:23:11

如果你愿意黑一点,用你自己的index.html和elm反应堆是完全有可能的。只需将以下内容放入index.html文件并在反应器中打开(例如,http://localhost:8000/src/index.html):

代码语言:javascript
复制
<html>

<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <link rel="stylesheet" href="styles.css"><!-- Put your styles in folder with index.html -->
</head>

<body>
  <div style="width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; color: #9A9A9A; font-family: &#39;Source Sans Pro&#39;;">
    <div style="font-size: 3em;">Building your project!</div>
    <img src="/_reactor/waiting.gif">
    <div style="font-size: 1em">With new projects, I need a bunch of extra time to download packages.</div>
  </div>
</body>

<!-- Fonts and external JS and styles are available, I've put Ace for example -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.4/ace.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.4/theme-chrome.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.4/worker-lua.js"></script>

<!-- Put the name of your app here (my sources place in `src` forder) -->
<script type="text/javascript" src="/_compile/src/YourApp.elm"></script>

<!-- Removes splash and starts elm app. -->
<script type="text/javascript">
while (document.body.firstChild) {
  document.body.removeChild(document.body.firstChild);
}
runElmProgram();
</script>

</html>

如果您想使用端口或标志,请使用下面的示例 (您需要Elm.App.fullscreen(flags)等来使用端口,但是需要runElmProgram()来显示错误):

代码语言:javascript
复制
<!doctype html>
<meta charset=utf-8>
<title>a title</title>
<link href=/bundle.css rel=stylesheet>
<body></body>
<script src="/_compile/Main.elm"></script> <!-- this will fail in production -->
<script src="/elm-bundle.js"></script> <!-- this will fail in development -->
<script>
var app
var flags = {}

try {
  app = Elm.App.fullscreen(flags)

  /* app.ports is now available */
} catch (e) {
  // this will run in case there are compile errors:
  var stylesheets = document.querySelectorAll('link')
  for (var i = 0; i < stylesheets.length; i++) {
    stylesheets[i].parentNode.removeChild(stylesheets[i])
  }
  runElmProgram()
}
</script>
票数 1
EN

Stack Overflow用户

发布于 2016-12-27 13:52:53

您可能想看看榆树-直播

它有与elm-reactor相同的选项,但您可以使用自己的index.html

票数 5
EN

Stack Overflow用户

发布于 2016-12-26 16:44:31

从今天(0.18.0)开始,您就不能使用elm反应器将您的应用程序嵌入到自定义的HTML中。如果没有额外的设置,也不可能有与elm反应堆的端口订阅。

考虑使用类似于创建Elm应用程序其他选择。的东西

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41333765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档