小编Joe*_*ert的帖子

Elixir Phoenix LiveView Echart 消失(消失)

抱歉,这篇文章很长,我试图提供所有信息并解释我已经尝试过的内容。

问题: 我将经典的凤凰视图放入实时视图中。虽然一切看起来都很好,但 echart 一完成绘制就消失了。好像没有办法找回来。

这是我的图表。如您所见,我也尝试将其与phx:update-event 挂钩。但这无济于事... graph.js

updateGraph = function() {
  console.log("updating the graph...")
  let device_name = document.getElementById('device-name').value;
  let series_data = document.getElementById('history_chart_data').dataset.series;

  series_data = JSON.parse(series_data);

  // draw chart
  window.myChart.setOption({
    [chart options omitted]
  });
}

initGraph = function() {
  // initialize echarts instance with prepared DOM
  window.myChart = echarts.init(document.getElementById('history_chart'), 'light');
  updateGraph();
}

document.addEventListener('DOMContentLoaded', initGraph, false);
document.addEventListener('phx:update', updateGraph);

Run Code Online (Sandbox Code Playgroud)

这是 html ( graph.html.leex)。如您所见,为了安全起见,我什至将数据放在另一个 div 中。

    <%= if assigns[:ttnmessages] do %>
      <script src="<%= Routes.static_path(DatabaumWeb.Endpoint, "/js/jcharts.min.js") %>"></script>
      <script src="<%= Routes.static_path(DatabaumWeb.Endpoint, …
Run Code Online (Sandbox Code Playgroud)

elixir phoenix-framework echarts phoenix-live-view

7
推荐指数
1
解决办法
576
查看次数

Elixir phoenix LiveView 可折叠在更新时折叠

问题

LiveView 折叠我打开的元素。

细节

我有一个在页面加载时折叠的元素:

<a class="collapse_trigger">...</a>
<div class="is-collapsible">
# content updated by liveview
</div>

Run Code Online (Sandbox Code Playgroud)

如果用户点击可折叠,则可折叠有一个类.is-active

<a class="collapse_trigger">...</a>
<div class="is-collapsible is-active">
# content
</div>
Run Code Online (Sandbox Code Playgroud)

但是 liveview 删除了那个类。知道如何确保 liveview 忽略父元素<div class="is-collapsible is-active">但会照顾孩子吗?我的第一个想法是phx-update="ignore"。但是现在我想我需要将可折叠的逻辑放入后端。:/

附加信息

我将bulma-collapsible与一个 css 更改一起使用:

// the following is necessary because liveview does not work well with the bulma-collapsible. Otherwise elements would stay open but can be closed by clicking them twice.
.is-collapsible{
  height: 0;
  &.is-active{
    height: auto;
  }
}
Run Code Online (Sandbox Code Playgroud)

elixir phoenix-framework phoenix-live-view

6
推荐指数
1
解决办法
483
查看次数

如何使用我的Rails控制台获得有效的真实性令牌?

我正在尝试使用我的rails控制台在我的控制器中调用公共post方法.

rails c

app.post '/servers/important_method'
Run Code Online (Sandbox Code Playgroud)

这显然给了我:

ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):
Run Code Online (Sandbox Code Playgroud)

有没有办法创建会话并调用该方法?

编辑:我可以创建一个视图并重新启动生产环境,但我想避免这种情况.

ruby-on-rails authenticity-token rails-console

4
推荐指数
1
解决办法
1267
查看次数

如何从现有的Rails 4应用程序中删除ActiveRecord?

我开始使用Ruby on Rails项目,其中包括一个带有ActiveRecord和Neography的简单推荐系统.现在我发现了neo4j.rb,这将大大简化我的生活.:-)

我现在才知道,我可以创建一个没有ActiveRecord的新应用程序,如下所示:

rails new xyz -O
Run Code Online (Sandbox Code Playgroud)

我可以这样做,并将我的大部分文件/代码粘贴到新项目中.或者有更简单的方法吗?

我还在考虑是否有必要采取这一步骤.是否可以并行使用neo4j.rb和ActiveRecord?我正在考虑使用ActiveRecord和neo4j中的推荐系统运行身份验证系统(例如Devise).有没有人有这种方法的经验?

activerecord ruby-on-rails neo4j neo4j.rb

3
推荐指数
1
解决办法
5005
查看次数

如何将html添加到phoenixframework flash消息中?

我在我的控制器中尝试了以下内容:

conn
|> put_flash(:info, "text with <a href=\"link\">twitter<\\a>"
|> render "index.html"
Run Code Online (Sandbox Code Playgroud)

我正在显示这样的消息(app.html.slim with bootstrap 4):

.alert.alert-success role="alert"= get_flash(@conn, :success)
.alert.alert-info role="alert"= get_flash(@conn, :info)
.alert.alert-warning role="alert"= get_flash(@conn, :warning)
.alert.alert-danger role="alert"= get_flash(@conn, :error)
Run Code Online (Sandbox Code Playgroud)

也许有一个选择?(尽管文档另有说明)

编辑:生成的HTML是:

<div class="alert alert-info" role="alert">text with &lt;a href="link"&gt;twitter&lt;\a&gt;</div>
Run Code Online (Sandbox Code Playgroud)

elixir phoenix-framework

1
推荐指数
1
解决办法
964
查看次数

将 elixir livebook 连接到正在运行的 phoenix 应用程序

为什么我想做呢?

  • 允许数据科学家使用所有业务逻辑功能

环境

  • Nginx 作为反向代理
  • Phoenix 应用程序(没有 dockermix release和 systemd)
  • 直播簿

全部运行在 VPS (Ubuntu) 上

到目前为止我做了什么

使用以下命令运行 livebook
LIVEBOOK_IP=<IP> LIVEBOOK_PORT=8089 LIVEBOOK_PASSWORD=<PASS> LIVEBOOK_COOKIE=<COOKIE> livebook server --name livebook@127.0.0.1 可以通过 IP 和端口在浏览器中访问。

mix release使用环境变量运行phoenix应用程序

      RELEASE_COOKIE: ${{ secrets.RELEASE_COOKIE }}
      RELEASE_DISTRIBUTION: name (literally)
      RELEASE_NAME: <appname>
      RELEASE_NODE: <appname>@<PUBLIC_IP>
Run Code Online (Sandbox Code Playgroud)

我尝试在同一台机器上运行没有 docker 的 livebook,以确保它们能够连接,但到目前为止还没有运气。

什么不起作用

从 Livebook 连接到 phoenix 应用程序既不能从本地安装的 Livebook 上也不能从部署在服务器上的 Livebook 上工作。我正在关注的屏幕截图教程在这里:fly.io 链接 它说该节点无法访问。 错误信息

deployment elixir phoenix-framework

1
推荐指数
1
解决办法
893
查看次数