JavaScript 数组正在被覆盖

问题描述

我有一个 Smarty foreach 循环,在其中我尝试推送到名为 JavaScript arrayarrayPorperties。但是 arrayPorperties内容只是获取所有先前值的最后一个值被覆盖。任何解决方案?
注意:assign 必须在循环内完成,因为它正在从 Smarty 数组 user_properties 获取值,否则它将无法工作

<script type="text/javascript">user_properties = [];</script>
{​​​​​​​foreach from=$user_properties item="user"}​​​​​​​
    {​​​​​​​assign var='tmp_coords' value=$user->get_coords()}​​​​​​​
        <script>
            user_properties.push(
            ['{$tmp_coords[0]}','{$tmp_coords[1]}','{$user->get_name()}','{$user->get_id()}']
            )
        </script>
{​​​​​​​/foreach}​​​​​​​

解决方法

我认为你可以做这样的事情。

但是我没有测试环境。也许在那之后你需要使用 JSON.Parse。

<script type="text/javascript">
    var user_properties = '{ldelim}{$user_properties}{redlim}';
</script>