2

我在理解循环语法应该如何与 webpy 一起工作时遇到了一些麻烦。

我有一个包含这样一段代码的模板:

            $for point in slow_points:
                L.marker(${point}, {icon: slowIcon}).addTo(map);

            });

最后});是关闭一个jquery函数。在 python 缩进之后,我希望});在我的输出页面中不应该重复,但确实如此。为了});不被重复,我必须这样做:

            $for point in slow_points:
                L.marker(${point}, {icon: slowIcon}).addTo(map);

});

});的位置一直到左边,因此基本上忽略了任何类型的缩进。

这是预期的行为吗?还有其他一些我可以用于循环的语法,可以让我保持缩进“干净”,但不会导致应该在 for 循环块之外的代码重复?

4

1 回答 1

0

举你的例子,它真的不应该重复});。以下代码

import web
template = """$def with(slow_points)
    $for point in slow_points:
        L.marker(${point}, {icon: slowIcon}).addTo(map);
    });
"""
page = web.template.Template(template)
print page(['a', 'b', 'c'])

输出这个:

L.marker(a, {icon: slowIcon}).addTo(map);
L.marker(b, {icon: slowIcon}).addTo(map);
L.marker(c, {icon: slowIcon}).addTo(map);
});

请确保您具有正确的缩进样式,其中 1 个缩进等于 4 个空格。

于 2013-10-08T15:57:01.937 回答