问题标签 [phoenix-live-view]
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.
elixir - 我如何在 Phoenix Live View 中处理嵌套表单操作?
所以,我按照本教程创建动态表单:http ://blog.plataformatec.com.br/2016/09/dynamic-forms-with-phoenix/
好的,这是我的实际input_helpers.ex
:
在这个项目中,我们有一个cliente
和一个user
模式,具有 1-1 的关系!
在实时视图模板中,我做了:
前两个字段来自变更集cliente
,其他来自user
变更集。当验证开始时,也就是用户开始输入输入,cliente
的字段正确地应用了border-red-500
类,但是user
的字段没有!
我对其进行了调试,发现当它尝试验证用户变更集的任何字段时,在的state_class
函数中input_helpers.ex
,它属于该!form.acton
子句。
我的问题是:我该如何处理这个嵌套的表单动作?为什么它属于上述cond
条款?
elixir - 在 phoenix LiveView 中使用外部库
我正在尝试将 WYSIWYG-Editor tinymce 与包含 textarea 字段的 phoenix LiveView 集成。在使用 LiveView 之前,我将它作为 node_module 库导入到 app.js 文件中
然后通过初始化它
为了能够验证模板中的表单输入,我将其转换为一个 LiveView,我通过它提供服务
按照惯例。但是,一旦安装了 LiveSocket,tinymce-plugin 就不再工作,并且只剩下一个基本的 textarea 字段,在该字段上执行预期的验证。
有没有办法将此外部库加载到 LiveView 中?我试图通过一个钩子调用一个包含 tinymce.init 步骤的函数
但这不起作用。有谁知道这个问题的解决方案?
elixir - live_redirect 表单后不抛出 phx-change
我在 LiveView 中处理表单上的 phx 更改时遇到问题。我正在创建一个用于过滤对象列表的搜索字段。该字段还有一个重置按钮。它看起来像这样:
搜索字段处理程序在 liveview 中,而不是在 liveview 组件中。Handler 是这样实现的:
当我从页面开始或刷新对象列表和搜索字段所在的位置时,一切都按预期工作。但是当我 live_redirect 到另一个页面然后 live_redirect 返回时,表单不再抛出事件。重置按钮仍然有效并引发事件。这里可能是什么问题?
ajax - 发出 GET 请求以在 Phoenix LiveView 中下载文件
我一直在尝试调用带有对 Rest API的身份验证的 GET HTTP 请求,以在 Phoenix Live View 页面中下载文件。我调用这个 API 的团队不像其他公司那样有签名 URL,所以我不能只使用window.location=
.
我正在调用的 API 将返回一个Content-Disposition
标头,例如Content-Disposition: attachment; filename*=UTF-8''Q1%20Report.pdf
在我的 LiveView 页面中,我有一个链接,单击后将需要调用此 GET 请求并重定向用户以从浏览器中保存文件。
如果这是一个简单的 JS 页面,我会简单地做这样的事情:
但是如何使用 LiveView 做到这一点?我在 Phoenix LiveView 文档中进行了搜索,但找不到任何示例。如果你以前做过,你能告诉我怎么做吗?
elixir - Phoenix LiveView 动态选择标签中的表单问题
在具有 3 个选择标签的 phoenix LiveView 表单中,第一个影响其他两个,即依赖的两个应该只显示第一个可用的选项,如下所示:
当item1
被选中时,item2
选择item3
标签确实包含正确的相应选项,但不显示任何选择的项目(因为它们不包含提示,所以应该选择第一个选项)。变更集不包括对item2
and的更改item3
(与显示的内容匹配)。但是,在item2
选择之后,item3
将显示第一个选项作为选择(如预期的那样)。之后,变更集确实包含item1
并item2
更改,但item3
选择的选项不存在。
问题:
- 如何让依赖选择标签(
item2
和item3
)在更改为第一个选择(item1
)后显示它们各自的第一个选项? - 如何从依赖选择标签中获取“默认”选项到变更集中?
elixir - 更新实时视图时如何保持输入的重点?
我有一个实时视图,当用户更新表单元素中的文本输入时添加一个p
标签。typing...
我希望typing..
在用户模糊文本输入时将其删除。
事件通过以下方式处理:
问题是当我最初在输入框中输入时,它失去了焦点,我必须重新点击它才能继续输入。
elixir - 不同元素更改时调用 LiveView update() 挂钩
当更新不同的元素时,我遇到了update()
调用钩子函数的问题。我的 LiveView 进程从其他进程接收到两条不同的消息,并且两个事件处理程序更新了两个不同的分配,但是这两个更新都调用了挂钩,即使只有一个更新会影响带有挂钩的元素。我猜这是因为在分配更改时重新渲染了整个 LiveView。我希望挂钩仅在挂钩所绑定的元素发生更改时触发。
我将如何解决这个问题?
我正在使用phoenix 1.5.9
和phoenix_live_view 0.15.1
。
下面我制作了一个类似于我的用例的最小代码示例:
实时取景
模板
钩
this.el
在控制台中打印了两次,但我希望它只打印一次,因为它只附加到div
withid="log1"
谢谢
elixir - 编程 Phoenix LiveView 书 | 第一章的最后一个任务怎么做?
我最近开始阅读 Programming Phoenix LiveView 这本书,在本章的最后,我们应该做一些任务,这些任务是:
现在您已经看到了一个基本的 LiveView“游戏”,您可以调整游戏,让用户真正赢。您需要:
• 游戏创建时为套接字分配一个随机数,用户需要猜测。
• 检查handle_event 中的那个数字以进行猜测。
• 猜对的奖励积分。
• 当用户获胜时显示获胜消息。
• 当用户获胜时显示重启消息和按钮。提示:您可能需要查看 live_patch/2 函数来帮助您构建该按钮。您可以将最后一个挑战视为一个延伸目标。我们将在接下来的章节中更详细地介绍 live_patch/2。
除最后一项外,我已完成上述 5 项任务中的 4 项。
如何在用户猜对数字时触发的函数内向我的页面添加一个按钮handle_event/3
(不确定这是否是执行此操作的正确位置)?我看过live_patch
函数,但我认为首先我需要想办法将它添加live_patch
到我的 DOM 中,但我不知道如何。您可以在下面看到相关代码。
ios - 带密码的 LiveView 表单 - iOS Safari 密码保存弹出窗口
我Save password/Never for this webstie/Not now
在 iOS 上的 Safari 浏览器上出现弹出窗口的问题。一旦我在表单中输入完密码并进入下一步,即First name
,就会出现弹出窗口,我们可以说这是一种例外行为。但是,一旦First name
填满并且我移动到该Last name
字段 - 关于保存密码的弹出窗口再次出现。如果我在 - 下方添加更多字段,Last name
则每一步都会显示弹出窗口。
我希望弹出窗口只显示一次 - 无论是在表格末尾还是在填写Password
字段后,这对我来说并不重要。
下面我从我的 LiveView 表单中粘贴了一些代码。
Erlang/OTP 24 [erts-12.0.3] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit]
Elixir 1.12.2(使用 Erlang/OTP 22 编译)
实时取景 0.15.5
凤凰 1.5.6
elixir - Phoenix 阻止 conn 从 Liveview 重定向
我有一个带有表单的 Liveview,用户在其中做出几个选择,然后在提交表单时将发布请求发送到标准controller
以处理下载。我在成功创建下载时发送下载case
的操作中有一个声明,这工作正常。controller
:download
我不知道如何防止其他:error
情况从 Liveview 重定向。