问题标签 [elm-port]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
elm - Elm 输出端口不适用于从 StartApp 派生的信号
我们正在学习 Elm 基础知识并使用以下设置构建一个带有一些音频输出的简单应用程序:
- 我们正在使用 Elm 的 StartApp。
- 我们有带有一些 POC 音频逻辑(和 console.log)的 ports/audio.js。
- ATM 我们使用elm-live运行应用程序。
使用从 Time.every 派生的信号,端口工作(ports/audio.js 中的代码运行)。此外,我们通过 Debug.log 获得“ping”日志。
但是,当我们使用从 StartApp 的App .model 派生的信号时,我们会收到一个信号(因为记录了带有 Debug.log 的“ping”日志)但是到 JS 的端口不起作用(ports/audio.js 中的代码没有运行)?
这可能是与 Elm 信号/端口/StartApp 相关的一些基本内容?
dom - 端口和 DOM 渲染
尝试在我的 Elm 应用程序中使用 CodeMirror。
update
我从这样的函数绑定一个textarea :
runCodemirror
端口在哪里:
问题是事件ports.runCodemirror
在文本区域出现在 DOM 之前触发。
我尝试通过以下方式解决该问题setTimeout
:
但它很丑。100ms 太慢了,我看到一个闪烁。
我有其他选择:将 CodeMirror 与不可见的 textarea 或 MutationObserver API 绑定。
有没有更好的办法?
javascript - Cmd 简单地转到 Elm 中的新网页
有没有办法简单地转到 Elm 中的新网页,类似于单击链接?
我有一个button
点击后我想将用户带到另一个网页。我知道我可以将它作为一个a
元素并使用 CSS 将其设置为像按钮一样的样式。但是,我正在使用elm-mdl
创建材料设计精简版按钮,无论如何我都想知道如何做到这一点。
我已经尝试创建一个GoTo String
Msg
并在单击按钮时触发它Button.onClick (GoTo "newpage.html")
,但我不知道该为Cmd
. 我尝试了以下方法:
但这只会使地址栏中的 URL 发生变化,用户实际上并没有转到新的 url...我可以使用端口并编写一些简单的 JavaScript 代码来调用window.location.href = 'newpage.html'
,我只是希望有一个简单的标准 Elm方法来做到这一点。
elm - 如何在 Elm 中自动滚动到 div 的底部
我将<div>
s 添加到包装器中<div>
,并且我需要能够滚动到每次添加的最后一个。我如何在 Elm 中做到这一点?
直观地说,我似乎可以调用port
运行 JavaScript 代码的 a element.scrollTop = element.scrollHeight
:
问题是在更新之前scrollToBottom
被调用。所以没什么大不了的,我将其转换为. 但是,即使现在首先更新,model
Task
model
view
还没有更新。所以我最终从底部滚动到第二个项目!
Cmd
这可能会导致我在 Elm 中很好奇的一个更普遍的问题,在由于模型更改而更新视图后如何运行?
codemirror - Elm 是否有可嵌入的代码编辑器?
我想在我的 Elm 网页中有一个代码编辑器小部件,例如CodeMirror或Ace 。不幸的是,CodeMirror 和 Ace 在修改 DOM 时不能与 Elm 一起使用(至少这是我的理解为什么它们不起作用)。
我需要至少比<textarea>
学生提交代码更好的东西。并为我们展示代码。现在只是自动缩进和语法高亮。
elm - elm:不带参数定义订阅端口
有没有办法在 Elm 中定义没有参数的订阅端口?
就像是:
使用此代码,我收到“端口'updateTime'的类型无效”的错误
使用代码:
它正在工作,但我不需要从 javascript 函数向 Elm 发送任何内容。
elm - 在 Elm 中更新视图后调用端口
Cmd
视图更新后是否有直接执行的方法?特别是,我试图在textarea
按下特定键(如回车键)时将光标重新定位。在我的update
功能中,我有:
我的setCursor
端口被调用,相应的 JavaScript 代码正确调用了textarea
'setSelectionRange
函数。然后Elm 调用我的函数来view
更新textarea
's 的内容。不幸的是,这消除了我的光标位置。
在调用我的 JavaScript 端口之前,我需要textarea
更新 的内容。有什么方法可以做到这一点而不诉诸哪一种方法可能并不总是有效,并且会在超时内导致闪烁?textarea.setSelectionRange()
setTimeout
elm - 无法从 elm 端口解码会话
试图让 elm 端口工作以维持会话。
在 index.html 中,脚本包含以下监听器:
localStorage.session
看起来像这样(它会一直留在那里,直到我退出):
中的定义Ports.elm
是:
port onSessionChange : (Value -> msg) -> Sub msg
此端口连接到Main.elm
此处(如果我忘记包含以下一些定义,请告诉我):
Debug.log "session"
页面加载时显示Nothing
在控制台中,因此 JS 正在与 elm 对话,但解码器似乎失败了。有任何想法吗?
elm - 使用带有 elm-app 的端口
我正在尝试将端口与 elm-app 一起使用。以前我使用elm-live
香草设置,并且能够插入这样的端口:
索引.html
这行得通,elm-live 似乎嵌入elm.js
在<head>
index.html 中。
但是,当我尝试将此设置用于带有 的端口时create-elm-app
,已编译的 javascript 嵌入在 的底部<body>
,因此像我所做的那样添加会<script>
导致:
嵌入 JS 端口的最佳方式是什么?
elm - Elm : Pass value to outgoing port from the update function
I have an update function that adds an Answer
to a Question
Once the question has been updated with an answer, I'd like to send it to an outgoing port, while also updating my model.
How could I pass updatedQuestion
to emitQuestion
in this scenario ?