我有一个看起来像这样的模板(我也使用jQuery,因此我们的GraphObject.make不是$
而是_
):
_(go.Panel, 'Table', {
itemTemplate: itemTemplate(_)
},
new go.Binding('itemArray', 'items')
)
当然,这部分不是整个模板,我只包含重要的片段。
我现在要做的是制作一个itemTemplate(_)
,几乎一行返回一行(取决于items
数组中的元素数量。
所以我尝试了itemTemplate()
这样的
itemTemplate = function(_) {
return _(
go.Panel,
'Horizontal',
{
margin: 2
col: 1
},
new go.Binding('row','row')
_(
go.Shape,
'Rectangle',
{
stretch: go.GraphObject.Horizontal,
height: 5
}
),
_(
go.TextBlock,
{
margin: 2
},
new go.Binding('text', 't')
)
);
};
我突然意识到这一点。使用这种方法,我需要返回2个面板以获得预期的输出。
如果有人想知道为什么行上有绑定,我使用上面go.Binding
中的回调覆盖了这个,看起来像这样:
new go.Binding('itemArray', 'items',
function(d) {
for (i = 0; i < d.length; i++) {
d[i].row = i;
}
return d;
}
)
所以这里我的问题:是否有可能在itemTemplate周围有一个包装器面板?像这样?
或者是否可以为每列返回两个单独的模板?
还是有另一种我不知道的解决方案吗?
答案 0 :(得分:1)
是的, Panel.itemTemplate 可以是 TableRow 类型的面板。然后,此面板的每个元素都可以适当地设置其列。该行自动设置。
上的讨论和示例