次のようなテンプレートがあります (jQuery も使用しているため、GraphObject.make は$
butではありません_
):
_(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 つのパネルを返す必要があります。
行に Binding がある理由を疑問に思う人がいる場合は、go.Binding
上記のコールバックを使用して、次のように説明しました。
new go.Binding('itemArray', 'items',
function(d) {
for (i = 0; i < d.length; i++) {
d[i].row = i;
}
return d;
}
)
ここで私の質問: itemTemplate の周りにラッパー Panel を配置することは可能ですか? そのようです?
- パネル : テーブル
- パネル : 行なし、列なし
- パネル: 行: 1、列: 1
- パネル: 行: 1、列: 2
- NextPanel : 行なし 列なし
- パネル : 行なし、列なし
または、列ごとに 2 つの個別のテンプレートを返すことは可能ですか?
または、私が認識していない別の解決策がありますか?