问题标签 [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.

0 投票
1 回答
122 浏览

elixir - 在凤凰模板内渲染空间时出现问题

当我发现一个奇怪的行为时,我正在尝试使用 Phoenix Live View 构建基本聊天。可能是因为我对 Phoenix 模板缺乏了解...

当尝试将 CSS 类动态分配给组件时,使用<%= if _, do: _, else: _ =>

问题是这被渲染为<div class"msg" local-user"">而不是<div class="msg local-user">

0 投票
1 回答
348 浏览

elixir - Phoenix Liveview - Websocket connect_info 阻止 iframe 内容

我实际上正在开发一个 phoenix 应用程序,我需要在一些嵌入 iframe 的网站中进行渲染,我完成了逻辑编码,但我发现它只适用于 Firefox,当在 Chome 或 Opera 上使用它时,它以无限循环充电尝试渲染内容,抛出以下警告:

在此处输入图像描述

我试图通过像这样的额外选项来允许这一点,但没有成功。

然后我发现在 Endpoint 的最后一个版本中,它有一个名为 same_site 的 cookie 的特定选项,所以我尝试了这样,但得到了相同的结果:

每次渲染失败时,我都会在控制台上收到以下日志: 在此处输入图像描述

一切似乎都有效,但我发现从端点上的 websocket 中删除 connect_info 自动解决了这个问题,就像这样:

但这会影响诸如监护人之类的事情,我猜是一些安全问题,所以我一直在寻找一种仅在尝试在 iframe 上呈现页面时删除它的方法,我正在考虑使用插件来执行此操作,但我没有知道这对于这个特定部分是否可行,也许有人知道我可以在这里做些什么来完成我想要的事情?提前致谢!

0 投票
1 回答
1086 浏览

elixir - 如何将插件加载的数据传递给 LiveView 组件

您好我使用不同的域名来加载不同的数据集。我目前正在使用自定义插件根据主机名加载正确的域 ID。例如,在我endpoint.ex的路由器之前得到了这个:

现在这适用于正常情况View,因为我domain_id在每个人中都有分​​配。但是我如何从插件中获取domain数据注入到我的 s 中呢?LiveView

目前,我已将相同的域检查代码复制到每个 LiveViews mount()页面:

有什么方法可以使插件有效地将这些数据推送到实时视图,而无需向每个安装添加代码?

0 投票
1 回答
465 浏览

elixir - 从凤凰路由器动态获取所有实时路由

我想在 Phoenix 中创建一个页面,该页面将链接到 router.ex 文件中声明的所有“实时”路由。例如 :

我想创建一个包含路径的列表,以便获得路径链接。有没有办法从凤凰路由器动态获取所有现有的实时路由,而无需再次写入?

mix phx.routes打印出来的东西。

0 投票
0 回答
70 浏览

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?

#xA;
0 投票
1 回答
180 浏览

elixir - 你能用块超级覆盖凤凰模板部分吗(比如Django?)

在 phoenix 模板中区分 HTML 块的推荐方法是什么?

我已阅读文档;它勾勒出以下轮廓;

  • 根布局由路由器中的插件注入
  • 您可以选择在路线上设置布局
  • 您可以选择在视图上设置布局

但是是否有可能(或以其他方式推荐)以某种方式仅覆盖模板块?例如 Django 让你做这样的事情;

base_template

继承视图模板

0 投票
1 回答
151 浏览

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它时,它说服务器已关闭。

问题

我究竟做错了什么?

0 投票
1 回答
261 浏览

elixir - 如何在 LiveView 中更新嵌套分配的值

我正在尝试使用嵌套分配,但找不到更新其值的方法......想象一下我有这个:

如何在此处更新值?

如何引用/表示该嵌套键?

0 投票
1 回答
55 浏览

elixir - 凤凰APP启动后在哪里做任务?

背景

我正在尝试使用 Phoenix LiveView 创建桌面应用程序。现在,以某种用户友好的方式(至少我知道的唯一方式)执行此操作的唯一方法是启动我的 Phoenix 应用程序/服务器,然后在客户端机器中打开浏览器窗口。

这就是诀窍。在客户端机器上打开浏览器窗口。

代码

通过查看其他强大的 Elixir 程序员的一些 github 存储库,我能够获取一段可以完成这项工作的代码。

演示/lib/demo/application.ex

这应该是先启动Phoenix App ,然后再打开窗口。

问题

所以,这段代码让我感觉有点不舒服,具体原因是:我的印象是该start功能应该只用于启动我的凤凰服务器,而不是用于其他任何事情。

但随之而来的问题是:

  • 如果该start功能的工作只是启动应用程序,那么执行其他任务的正确/最佳位置是什么,例如打开浏览器的窗口或在应用程序启动执行一些准备工作?
0 投票
1 回答
36 浏览

elixir - 匿名函数的可见性和生命周期

我尝试过滤掉已删除的项目:

但似乎生命周期或范围在这里关闭:我在这里得到未使用的变量filter_by_id和未定义的函数filter_by_id错误。代码有什么问题?