flask, python, fullcalendar.jsでflaskから送った特定の日付の背景色を変える。
あんまりスマートじゃない気がするんだけど、とりあえずできたので忘備録的に記載しておく
dates = ["2017-06-15", "2017-06-16", "2017-06-18"] reasons = ["", "ppo", "pupp"] cal_data = { "date_answer" : [dates, reasons] } #dictにする必要はないんだけど、今後使うので return render_template("test.html", CalSet=json.dumps(cal_data))
<canvas id="chart2"></canvas> <div id="calender"></div> <script src="{{ url_for('static', filename='js/test.js') }}"></script> <script> my_cal({{ CalSet|tojson }}) </script>
const my_cal = function(data){ const d = JSON.parse(data); const d_a = d.date_answer $(document).ready(function() { $('#calender').fullCalendar({ dayClick: function(date, jsEvent, view) { $(this).css('background-color', 'red'); }, dayRender: function (date, cell) { for(var i = 0; i < d_a[1].length; i++){ if(d_a[0][i] == date.format('YYYY-MM-DD')){ cell.css("background-color", "yellow"); } } } }); }); }
ポイントは下で
date.format('YYYY-MM-DD')
これをしないとstringでこの形にならないらしい。
ちなみにforで回しているけど汚い気がしてならない。
さらに言うと
`isSame("2017-06-18")`
みたく動く関数があるみたいなんだけど、使えませんでした。
Fullcalendar event cell background color - Stack Overflow
これを参考にした。