javascript - 如何在 Rails 6 应用程序中将变量传递给 javascript
问题描述
我有一个使用完整日历的 rails 6 应用程序。我已设置日历并正常工作。
要完成日历集成,我唯一需要做的就是将 @user.id 添加到 json 提要的 url 中,以便将数据添加到日历中。
这是我的代码:
javascript/fullcalendar/fullcalendar.js
import { Calendar } from "@fullcalendar/core";
import dayGridPlugin from "@fullcalendar/daygrid";
document.addEventListener('turbolinks:load', function() {
var calendarEl = document.getElementById('calendar');
var calendar = new Calendar(calendarEl, {
plugins: [ dayGridPlugin ],
eventSources: [
{
url: "/users/<%= @user.id %>/jobs.json",
}
]
});
calendar.render();
});
如果我替换<%= @user.id %>
为3
然后日历从 json.jbuilder 文件中提取数据并且日历工作。
我如何传递<%= @user.id %>
到日历?
解决方案
在 Rails 应用程序中,通过数据属性传递属性是很常见的模式。
在您的视图模板中,您将插入用户 ID:
<div id="calendar" data-user-id="<%= @user.id %>">
</div>
在您的 JavaScript 中,您将通过以下方式读取用户 ID dataset
:
var calendarEl = document.getElementById('calendar');
var userId = calendarEl.dataset.userId;
推荐阅读
- java - 如何获取在新选项卡中单击任何链接时可见的元素列表
- r - 编写一个高效的循环来比较gps坐标
- docker - docker rm IMAGE 与 docker rmi IMAGE 之间的区别
- php - 在远程 FTP 上复制或创建文件
- javascript - 如何使用 Angular 9 打印多个 PDF
- angular - 通过从 ngTemplateOutlet 传递上下文绑定到 ng-template 中的 ngModel
- java - 断言抛出异常
- python-3.x - Flask 和 SQLAlchemy 的 Column 类型
- laravel - 存储 laravel 中的安全文件
- node.js - 内部/模块/cjs/loader.js:969 抛出错误;^ 错误:找不到模块 'F:\mernbootcamp\harrycodname