1

次のようなテンプレートがあります (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 つの個別のテンプレートを返すことは可能ですか?

または、私が認識していない別の解決策がありますか?

4

1 に答える 1