javascript - 如何正确使用 JSON 将事件/事件源传递给 FullCalendar?
问题描述
我的最终目标是通过 JSON 动态传递 eventSources。在我开始动态生成 JSON 内容之前,我正在尝试使用文档示例通过 JSON URL 将一个简单的单个事件传递到我的事件标记中,手动编写。
我可以看到 URL 有效,因为我可以通过 php 在我的 wordpress 网站中回显结果,但是我传递 JSON URL 的 JS 脚本只会使日历崩溃。我真的在这个问题上摸不着头脑。
还提到了使用本地时区日期(例如当前显示月份的范围)触发对 JSON 的 GET 的 prev/next 按钮。我应该如何语法化 json 以便让事件调用找到数据点范围?我真的对这一切感到困惑。
JSON 文件:calendar.json
{
"title" : "something",
"start" : "2019-04-23"
}
PHP 文件:page-calendar.php
<?php
//Wordpress function for URL to the file location
$url = get_stylesheet_directory_uri() . '/calendar.json';
$data = file_get_contents($url);
$content = json_decode($data);
echo $content->title; // Just to test if the URL works
echo $content->start; // This echos just fine
?>
<html lang='en'>
<head>
<meta charset='utf-8' />
<script>
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
plugins: [ 'dayGrid' ],
events: $url;
});
calendar.render();
});
</script>
</head>
<body>
<div id='calendar'></div>
</body>
</html>
解决方案
JSON 需要是一个事件数组(即使该数组只包含一个对象)。目前您只有一个对象,而 fullCalendar 不会读取它。
使您的calendar.json
文件如下所示:
[
{
"title" : "something",
"start" : "2019-04-23"
}
]
您还需要稍微更改代码,以便您的 PHP$url
变量被视为 PHP 并呈现,并且输出被 JS 视为字符串,而不仅仅是按原样注入 JS:
events: "<?php echo $url; ?>"
推荐阅读
- markdown - Bookdown 独立的 gitbook,带有单独的页面
- python - UnboundLocalError 原因
- go - 为项目使用多个包而不是单个包
- c# - Xamarin 中其他类的访问方法
- swift - 在 Swift 中终止 macOS 命令行工具的子进程
- c# - C# ASP.NET Core Razor pages: How to access route constraint within markup
- java - 在获取代码以正确找到中值 Java 时遇到问题
- bitbucket - Bitbucket 页面:是否支持自定义域名和备用根文件夹?
- java - Java Collectors.groupingBy 找不到错误
- javascript - 在 componentWillReceiveProps 中触发 redux 表单提交