抱歉,这篇文章很长,我试图提供所有信息并解释我已经尝试过的内容。
问题: 我将经典的凤凰视图放入实时视图中。虽然一切看起来都很好,但 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) 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) 我正在尝试使用我的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项目,其中包括一个带有ActiveRecord和Neography的简单推荐系统.现在我发现了neo4j.rb,这将大大简化我的生活.:-)
我现在才知道,我可以创建一个没有ActiveRecord的新应用程序,如下所示:
rails new xyz -O
Run Code Online (Sandbox Code Playgroud)
我可以这样做,并将我的大部分文件/代码粘贴到新项目中.或者有更简单的方法吗?
我还在考虑是否有必要采取这一步骤.是否可以并行使用neo4j.rb和ActiveRecord?我正在考虑使用ActiveRecord和neo4j中的推荐系统运行身份验证系统(例如Devise).有没有人有这种方法的经验?
我在我的控制器中尝试了以下内容:
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 <a href="link">twitter<\a></div>
Run Code Online (Sandbox Code Playgroud) mix 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 链接
它说该节点无法访问。
