求助:Lua中object_list无法在pongo2模板渲染的问题
Algernon中Lua对象列表无法在pongo2模板渲染
问题重现
使用Algernon工具将Lua脚本数据输出到pongo2模板时,number_list能正常渲染,但object_list无内容输出。
Lua代码
title = "This is the title" number_list = {} table.insert(number_list, 1) table.insert(number_list, 2) table.insert(number_list, 3) object_list = {} o1 = {1} table.insert(object_list, o1) o2 = {2} table.insert(object_list, o2) o3 = {3} table.insert(object_list, o3)
pongo2模板代码
<html> <head> <title>{{title}}</title> </head> <body> {{ title }} <div> {% for item in number_list %} test 1: {{item}} {% endfor %} {% for item in object_list %} test 2: {{item}} {% endfor %} </div> </body> </html>
问题原因
经核实这是Algernon的已知bug:当Lua传递的列表元素为匿名表(如{1}这类无键名的表)时,pongo2模板无法正确识别并渲染。
替代实现方案
将匿名表改为带明确键名的表,让模板能正确访问内部值:
修改后的Lua代码
title = "This is the title" number_list = {} table.insert(number_list, 1) table.insert(number_list, 2) table.insert(number_list, 3) object_list = {} -- 改为带键名的表结构 o1 = {value = 1} table.insert(object_list, o1) o2 = {value = 2} table.insert(object_list, o2) o3 = {value = 3} table.insert(object_list, o3)
修改后的pongo2模板代码
<html> <head> <title>{{title}}</title> </head> <body> {{ title }} <div> {% for item in number_list %} test 1: {{item}} {% endfor %} {% for item in object_list %} test 2: {{item.value}} {% endfor %} </div> </body> </html>
修改后object_list的内容即可正常渲染。
内容的提问来源于stack exchange,提问作者AppTest
相关产品推荐
相关产品推荐

