我有一个如下所示的模板(我也在使用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')
)
);
};我突然意识到。使用这种方法,我需要返回两个面板,以获得预期的输出。
如果有人想知道为什么行上有绑定,我会在上面的go.Binding中使用回调进行介绍,如下所示:
new go.Binding('itemArray', 'items',
function(d) {
for (i = 0; i < d.length; i++) {
d[i].row = i;
}
return d;
}
)在这里,我的问题是:在itemTemplate周围有一个包装面板吗?就像这样?
- NextPanel : No row No col
还是可以为每个列返回两个单独的模板?
还是有另一种我不知道的解决办法?
发布于 2015-08-21 02:31:42
是的,Panel.itemTemplate可以是类型为TableRow的Panel。然后,该面板的每个元素都可以适当地设置其列。行是自动设置的。
参见http://gojs.net/latest/intro/itemArrays.html中的讨论和示例
https://stackoverflow.com/questions/32112409
复制相似问题