jQuery / JS - 输出数组中的对象 - 最佳实践

时间:2014-06-19 12:49:05

标签: javascript jquery json django

需要一些建议。我正在使用一个jQuery日历插件(这似乎很少见!)并且它已完全用JS初始化。没有HTML。

要添加事件,您必须将每个事件编写为数组中的对象:

events: [
        {
            title: "Title of event",
            start: {
                date: YYYYMMDD or "YYYYMMDD",   // "20131230"
                time: "HH.MM"                   // "12.00"
            },
            end: {
                date: YYYYMMDD or "YYYYMMDD",   // "20131230"
                time: "HH.MM"                   // "20.00"
            }
        },
        {
            title: "Title of event",
            start: {
                date: YYYYMMDD or "YYYYMMDD",   // "20131230"
                time: "HH.MM"                   // "12.00"
            },
            end: {
                date: YYYYMMDD or "YYYYMMDD",   // "20131230"
                time: "HH.MM"                   // "20.00"
            }
        }
    ],

我正在使用Django,并且需要为每个事件编写一个for循环到这种格式。所以,我的问题是,最好的方法是什么? JSON?这可能吗?将数据作为JS对象输出的最佳做法是什么?

提前致谢,

[R

2 个答案:

答案 0 :(得分:0)

根据@rdck的要求,下面是一个如何实现的例子:

服务器端(PHP示例):

<?php
$arr = array();
$arr[] = array(
    'title'=>'Title of event',
    'start' => array(
        'date'=>'YYYYMMDD',
        'time'=>'HH.MM'
        ),
    'end'   => array(
        'date'=>'YYYYMMDD',
        'time'=>'HH.MM'
        ),
);

$arr[] = array(
    'title'=>'Title of event2',
    'start' => array(
        'date'=>'YYYYMMDD',
        'time'=>'HH.MM'
        ),
    'end'   => array(
        'date'=>'YYYYMMDD',
        'time'=>'HH.MM'
        ),
);
?>

在HTML中

<script type="text/javascript">
    var events = '<?php echo json_encode($arr); ?>';
</script>

events是您的json对象,您可以将其直接传递到事件日历

答案 1 :(得分:0)

我认为,最佳方式是AJAX请求。

但是你可以将json-string添加到context-dict并在模板中呈现它:

<script type="text/javascript">var events = {{ json_data }};</script>