Golang + JQuery + Smarty:如何迭代对象?

时间:2017-08-26 14:43:49

标签: jquery go fullcalendar smarty

Golang服务器正在向schools智能文件发送print.tpl个对象,例如: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>

1 个答案:

答案 0 :(得分:1)

Go模板支持js和css, actions {{ ... }})的评估是上下文的,所以你可以像在html中一样迭代js中的学校。虽然我不知道什么是聪明的,所以如果这不起作用,你需要查看smarty的文档。

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

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