问题标签 [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 构建基本聊天。可能是因为我对 Phoenix 模板缺乏了解...
当尝试将 CSS 类动态分配给组件时,使用<%= if _, do: _, else: _ =>
:
问题是这被渲染为<div class"msg" local-user"">
而不是<div class="msg local-user">
elixir - Phoenix Liveview - Websocket connect_info 阻止 iframe 内容
我实际上正在开发一个 phoenix 应用程序,我需要在一些嵌入 iframe 的网站中进行渲染,我完成了逻辑编码,但我发现它只适用于 Firefox,当在 Chome 或 Opera 上使用它时,它以无限循环充电尝试渲染内容,抛出以下警告:
我试图通过像这样的额外选项来允许这一点,但没有成功。
然后我发现在 Endpoint 的最后一个版本中,它有一个名为 same_site 的 cookie 的特定选项,所以我尝试了这样,但得到了相同的结果:
一切似乎都有效,但我发现从端点上的 websocket 中删除 connect_info 自动解决了这个问题,就像这样:
但这会影响诸如监护人之类的事情,我猜是一些安全问题,所以我一直在寻找一种仅在尝试在 iframe 上呈现页面时删除它的方法,我正在考虑使用插件来执行此操作,但我没有知道这对于这个特定部分是否可行,也许有人知道我可以在这里做些什么来完成我想要的事情?提前致谢!
elixir - 如何将插件加载的数据传递给 LiveView 组件
您好我使用不同的域名来加载不同的数据集。我目前正在使用自定义插件根据主机名加载正确的域 ID。例如,在我endpoint.ex
的路由器之前得到了这个:
和
现在这适用于正常情况View
,因为我domain_id
在每个人中都有分配。但是我如何从插件中获取domain
数据注入到我的 s 中呢?LiveView
目前,我已将相同的域检查代码复制到每个 LiveViews mount()页面:
有什么方法可以使插件有效地将这些数据推送到实时视图,而无需向每个安装添加代码?
elixir - 从凤凰路由器动态获取所有实时路由
我想在 Phoenix 中创建一个页面,该页面将链接到 router.ex 文件中声明的所有“实时”路由。例如 :
我想创建一个包含路径的列表,以便获得路径链接。有没有办法从凤凰路由器动态获取所有现有的实时路由,而无需再次写入?
像mix phx.routes
打印出来的东西。
phoenix-framework - Textarea and phx_change
Is there a way to tell live view to exclude certain fields from phx_change
and use on blur event instead? For example when user types a long message
in a form, I would like to avoid sending every keystroke to the server, but keep sending it for another_field
. Is there a possibility to do the validation on blur for given form component?
elixir - 你能用块超级覆盖凤凰模板部分吗(比如Django?)
在 phoenix 模板中区分 HTML 块的推荐方法是什么?
我已阅读文档;它勾勒出以下轮廓;
- 根布局由路由器中的插件注入
- 您可以选择在路线上设置布局
- 您可以选择在视图上设置布局
但是是否有可能(或以其他方式推荐)以某种方式仅覆盖模板块?例如 Django 让你做这样的事情;
base_template
继承视图模板
elixir - 混合版本不适用于 Phoenix 实时取景演示应用
背景
我正在玩Phoenix LiveView,我已经设置了一个应用程序mix phx.new demo --live --no-ecto
。
我的主要目标是创建此应用程序的版本,以便我可以根据需要对其进行调整,但我遇到了麻烦。
问题
为了为我的演示应用程序创建一个版本,我遵循了Deploying with Releases教程并更改了所有必要的文件。
将以下内容添加到我的mix.exs
:
并正确更改了运行时配置中列出的文件:
https://hexdocs.pm/phoenix/releases.html#runtime-configuration
但是,当我执行时,_build/prod/rel/my_app/bin/demo start
什么也没有发生。如果我执行_build/prod/rel/my_app/bin/demo start_iex
,我会得到以下输出:
这让我相信有什么东西崩溃了。
当我访问localhost:4000
它时,它说服务器已关闭。
问题
我究竟做错了什么?
elixir - 如何在 LiveView 中更新嵌套分配的值
我正在尝试使用嵌套分配,但找不到更新其值的方法......想象一下我有这个:
如何在此处更新值?
如何引用/表示该嵌套键?
elixir - 凤凰APP启动后在哪里做任务?
背景
我正在尝试使用 Phoenix LiveView 创建桌面应用程序。现在,以某种用户友好的方式(至少我知道的唯一方式)执行此操作的唯一方法是启动我的 Phoenix 应用程序/服务器,然后在客户端机器中打开浏览器窗口。
这就是诀窍。在客户端机器上打开浏览器窗口。
代码
通过查看其他强大的 Elixir 程序员的一些 github 存储库,我能够获取一段可以完成这项工作的代码。
演示/lib/demo/application.ex
这应该是先启动Phoenix App ,然后再打开窗口。
问题
所以,这段代码让我感觉有点不舒服,具体原因是:我的印象是该start
功能应该只用于启动我的凤凰服务器,而不是用于其他任何事情。
但随之而来的问题是:
- 如果该
start
功能的工作只是启动应用程序,那么执行其他任务的正确/最佳位置是什么,例如打开浏览器的窗口或在应用程序启动后执行一些准备工作?
elixir - 匿名函数的可见性和生命周期
我尝试过滤掉已删除的项目:
但似乎生命周期或范围在这里关闭:我在这里得到未使用的变量filter_by_id
和未定义的函数filter_by_id
错误。代码有什么问题?