因此,我想在Google电子表格中列出植物列表,我想用HTML呈现。我有一个脚本,它将信息收集在一个对象或一个数组中,数组的每个元素都是一个对象。每个工厂都有一个3位数的id,用作对象和数组中的键,如下所示: object [143] .create_date = 12/15/2012 array [143] .create_date = 12/15/2012
正在正确创建对象和数组。
问题:
var pRet = HtmlService.createTemplateFromFile('Plant Listing');
我无法使用HtmlService和html模板将数据转换为html。以
的形式使用对象时pRet.data = myObject;
在html模板代码中,例如:
<? for(var x in data) { ?>
<? data[x].create_date ?>
呈现为TypeError:无法从null读取属性“create_date”。但是,如果我将数据传递给模板,如下所示:
pRet.Data = myObject[143];
然后渲染的html循环并显示id为143的工厂的数据元素。如果我使用通过工厂ID返回植物作为数组索引的函数,那么我得到一个元素0到99的数组未定义的第一个元素具有任何数据,元素100对应于id为100的工厂。
我在apreadsheet中将数据呈现为对象的代码返回一个带有元素列表的对象,如下所示:
{143={stage_7=-1.0, index=20.0, stage_5=-1.0, stage_6=-1.0, stage_3=1.0, current_stage=1.0, strain=1.0, stage_4=0.0, location=1.0, stage_1=51.0, stage_2=61.0, id=143.0, create_date=Sat Dec 08 2012 00:00:00 GMT-0700 (MST), group=null}
将数据集作为在工厂id索引的数组返回的代码返回此结果,前100个元素为null,因为第一个工厂索引为100:
{stage_7=-1.0, index=1.0, stage_5=-1.0, stage_6=-1.0, stage_3=5.0, current_stage=2.0, strain=1.0, stage_4=-1.0, location=2.0, stage_1=Mon Jul 09 23:00:00 PDT 2012, stage_2=56.0, id=100.0, create_date=Sat Dec 08 2012 00:00:00 GMT-0700 (MST), group=null}
问题: 我可以尝试将数据从电子表格传递到渲染的html的其他方法是什么?我最初的想法是放弃在植物id上使用数组或对象索引中的元素的想法。另一个选择是使用数组并检查模板文件中的空条目。
答案 0 :(得分:0)
HtmlService中存在一个已知错误,您无法将子属性分配给模板上的对象。所以这失败了:
var = HtmlService.createTemplate();
t.x = {};
t.x.y = 1; // This throws no error, but t.x.y will still be undefined!
然而这有效:
var = HtmlService.createTemplate();
var x = {};
x.y = 1;
t.x = x; // t.x.y will now correctly be 1
我们知道问题是什么,并计划修复它,但它并不重要,需要一些时间才能推出。