Golang + JQuery + Smarty:如何遍历对象?

Golang + JQuery + Smarty: How to iterate over object?

Golang 服务器正在将 schools 对象发送到 print.tpl smarty 文件,例如:tplData["Schools"] = schools

print.tpl 文件中,我可以使用以下方法打印它:

{{range $.Schools}}
    {{.Course}} --  {{.Duration}}
{{end}}

print.tpl 文件中,我需要使用 https://fullcalendar.io JQuery 组件,它可以很好地处理静态数据,如下所示:

<script>
    $(document).ready(function() {
         $('#calendar').fullCalendar({             
             header: {
                 left: 'prev,next today myCustomButton',
                 center: 'title',
                 right: 'month,agendaWeek,agendaDay,listMonth'
             },
             events: [
                  {
                      title  : 'event1',
                      start  : '2017-08-01'
                  }
              ]
         });
    });
</script>

问题:如何在 JQuery 函数中迭代 $.Schools 对象?

注意:在 Golang 中托管 REST 并调用 JQuery 是一种选择,但我不想走那条路。


更新:根据@mkopriva 精彩回答新的增强代码:

<script>
        $(document).ready(function() {
             $('#calendar').fullCalendar({             
                 header: {
                     left: 'prev,next today myCustomButton',
                     center: 'title',
                     right: 'month,agendaWeek,agendaDay,listMonth'
                 },
                 events: [
                      {{range $.Schools}}
                      {
                        title  : {{.Course}},
                        start  : {{.Duration}}
                      },
                  {{end}}
                  ]
             });
        });
    </script>

Go 模板支持 js 和 css 并且 actions ({{ ... }}) 的评估是上下文相关的,因此您可以在 js 中迭代学校你做 html。虽然我不知道 smarty 是什么,所以如果这不起作用你需要检查 smarty 的文档。

events: [
    {{range $.Schools}}
    {
        title: {{.Course}},
        start: {{.Duration}}
    },
    {{end}}
]

https://play.golang.org/p/LBDBAMY4cL