在单独的Javascript文件中获取数据的最佳方式?

时间:2012-02-23 11:25:37

标签: javascript jquery

让我首先尽我所能描述情况。

所以我在PHP MVC框架中工作。在方法的控制器内部,我根据需要收集和格式化数据,然后将其发送到视图。视图页面依次使用该数据,但也包括单独的javascript脚本文件,这些文件也需要访问控制器传递给视图的数据。

确保控制器传递给视图的数据可以被其他javascript文件访问的最佳方法是什么?

现在我正在做的只是创建一堆隐藏的字段,以便在我的javascript中我可以做:

$('selector').val();

为了访问数据,但我不禁认为可能有更简洁的方法来执行此操作。

2 个答案:

答案 0 :(得分:2)

在视图中,您可以创建包含所需信息的Javascript对象,将数据编码为JSON:

<script>
var phpVars = {}; //create empty javascript object
<?php foreach($vars as $name=>$value) { ?>
  //assign PHP variables to Javascript object, encoding as JSON for proper escaping
  //should also check $name and $value are of the proper type
  phpVars.<?php echo $name;?> = <?php echo json_encode($value);?>;
<?php } ?>
</script>

然后,您可以在javascript代码中访问phpVars对象。

答案 1 :(得分:1)

我经常在这种情况下使用的解决方案只是在脚本标记内输出数据到JSON格式的视图:

<script>
  window.data = <? json_encode($data) ?>;
</script>

然后,这些数据将以window.data的其他文字形式提供。

如果应用程序复杂,您应该考虑将数据保存到分离的命名空间中的变量,以防止全局范围污染。