0

我有一个 id all_entries_user 列表。它们基本上是我使用 TastyPie 开发的休息服务 url 的一部分。在我的 Django 模板中,我想通过迭代 all_entries_user 来使用它们

function ajaxCall(){
    $.getJSON("http://localhost:8000/api/Location/" + {{ all_entries_user.pop }} + "/?format=json",
    function(json) {
    convert(json,"googleMapUser");
        }
    );
}

使用它我从 Service 获取值,这发生在一个连续的时间间隔内。

 interval = startInterval(ajaxCall, 3000);

url 的值必须为每个调用更改,并且必须从列表中获取

  all_entries_user

每次都给我相同的ID。

我试图弹出值,但每次都给我相同的值

我还没有找到一种有效的方法来迭代这个。

建议和帮助请

4

2 回答 2

2

你为什么不使用for构造

{% for user in all_entries_user %}
    Do your thing with {{ user }}
{% endfor %}
于 2013-09-22T17:17:17.290 回答
0

当你混合两种语言时会很混乱。发生的事情是,当模板被渲染时,您的 javascript 会“构建”一次,因此无论 javascript 访问该方法多少次,您都只有一个 URL。您可以通过使用查看源代码并检查您的 javascript 对客户端的外观来验证这一点。

如果您希望客户端每次调用不同的 URL,则必须先将所有 ID 发送给客户端。一种方法是使用 json 序列化程序或只是一个简单的自制 javascript 数组构建器。

像这样的东西可能会起作用:

<script>
   var allEntries = [{% for entry in all_entries_user %}{{ entry.id }},{% endfor %}];
   for (entryId in allEntries) {
      doSomethingWith(entryId);
   }
</script>

这不是从 django 填充 javascript 数组的最佳方法,但它工作得很快。

于 2017-01-18T03:49:18.387 回答