登录
首页 >  Golang >  Go问答

Fullcalendar 不渲染从 golang gin 获取的事件

来源:stackoverflow

时间:2024-04-07 11:54:34 275浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《Fullcalendar 不渲染从 golang gin 获取的事件》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!

问题内容

我是 golang 和 web-dev 的新手,我使用 gin 作为 api 为 fullcalendar 提供 json 事件。这是我的全日历事件配置:

下面是我的杜松子酒处理程序:

func eventsjson(c *gin.context) {
    start := c.postform("start")
    end := c.postform("end")
    es := models.getevents(start, end)
    jes, err := json.marshal(es)
    if err != nil {
        fmt.println(err)
    }
    c.json(200, gin.h{"events": jes})
}

下面是从 db 和 jes 返回的[]事件:

[{"id":1,"title":"test event",
  "start":"2018-10-09t20:07:50.402286+08:00",
  "end":"2018-10-09t20:57:50.402286+08:00",
  "description":1},
 {"id":2,"title":"test event",
  "start":"2018-10-11t15:03:43.963198+08:00",
  "end":"2018-10-11t15:53:43.963198+08:00",
  "description":1}]

[91 123 34 105 100 34 58 49 44 34 116 105 116 108 101 34 58 34 116 101 115 116 32 101 118 101 110 116 34 44 34 115 116 97 114 116 34 58 34 50 48 49 56 45 49 48 45 48 57 84 50 48 58 48 55 58 53 48 46 52 48 50 50 56 54 43 48 56 58 48 48 34 44 34 101 110 100 34 58 34 50 48 49 56 45 49 48 45 48 57 84 50 48 58 53 55 58 53 48 46 52 48 50 50 56 54 43 48 56 58 48 48 34 44 34 100 101 115 99 114 105 112 116 105 111 110 34 58 49 125 44 123 34 105 100 34 58 50 44 34 116 105 116 108 101 34 58 34 116 101 115 116 32 101 118 101 110 116 34 44 34 115 116 97 114 116 34 58 34 50 48 49 56 45 49 48 45 49 49 84 49 53 58 48 51 58 52 51 46 57 54 51 49 57 56 43 48 56 58 4848 34 44 34 101 110 100 34 58 34 50 48 49 56 45 49 48 45 49 49 84 49 53 58 53 51 58 52 51 46 57 54 51 49 57 56 43 48 56 58 48 48 34 44 34 100 101 115 99 114 105 112 116 105 111 110 34 58 49 125 93]

但是事件没有在日历上呈现,我不确定是否应该在响应客户端之前用字符串(jes)将其转换,或者 fullcalendar 事件配置有问题

我检查了响应正文,发现事件是这样的

{"events":"w3siawqiojesinrpdgxlijoidgvzdcbldmvudcisinn0yxj0ijoimjaxoc0xmc0wovqymdownzo1mc40mdiyodyrmdg6mdailcjlbmqioiiymde4ltewlta5vdiwoju3ojuwljqwmji4niswodowmcisimrlc2nyaxb0aw9uijoxfsx7imlkijoylcj0axrszsi6inrlc3qgzxzlbnqilcjzdgfydci6ijiwmtgtmtatmtfumtu6mdm6ndmuotyzmtk4kza4ojawiiwizw5kijoimjaxoc0xmc0xmvqxnto1mzo0my45njmxotgrmdg6mdailcjkzxnjcmlwdglvbii6mx1d"}

我执行 string(jes) ,响应 json 变为

{"events":"[{\"id\":1,\"title\":\"test event\",\"start\":\"2018-10-09t20:07:50.402286+08:00\",\"end\":\"2018-10-09t20:57:50.402286+08:00\",\"description\":1},{\"id\":2,\"title\":\"test event\",\"start\":\"2018-10-11t15:03:43.963198+08:00\",\"end\":\"2018-10-11t15:53:43.963198+08:00\",\"description\":1}]"}

如果我不执行 json.marshal()

func eventsjson(c *gin.context) {
    start := c.postform("start")
    end := c.postform("end")
    es := models.getevents(start, end)
    c.json(200, gin.h{"events": es})
}

响应 json 如下所示,但仍未渲染

{"events":[{"id":1,"title":"test event",
 "start":"2018-10-09T20:07:50.402286+08:00",
 "end":"2018-10-09T20:57:50.402286+08:00","description":1}, 
{"id":2,"title":"test event",
 "start":"2018-10-11T15:03:43.963198+08:00",
 "end":"2018-10-11T15:53:43.963198+08:00","description":1}]}

事实证明 c.json 已经将其序列化为 json,但事件仍然没有呈现到日历中......


解决方案


似乎没有提供 fullcalendar 可以读取的确切响应格式,因此将处理程序更改为不使用按键响应可以解决问题

func EventsJSON(c *gin.Context) {
start := c.PostForm("start")
end := c.PostForm("end")
es := models.GetEvents(start, end)
c.JSON(200, es})
}

本篇关于《Fullcalendar 不渲染从 golang gin 获取的事件》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>