1

図形と svg 画像が図に追加されたパネルを持つ部分があります。これに nodetemplate が続き、次に groupTemplate が続きます。

1] myDiagram.add( $$(go.Part, "テーブル",

2] myDiagram.nodeTemplate =

3] myDiagram.groupTemplate =

クロムでの図のレンダリングは次のとおりです。 ここに画像の説明を入力

Mozillaでの図のレンダリングは次のとおりです。 ここに画像の説明を入力

mozilla で赤い円とテキストが下部に表示されるのはなぜですか....???

IE と Chrome のレンダリングは同じですが、mozilla とは異なります。誰か助けてくれませんか!!

ありがとう

4

1 に答える 1

1

これが起こっているのは、Chrome のArray.sortソートが安定していないためです。これは、要素のリストをソートする必要があり、一方が他方よりも優先されることを決定する基準がない場合、結果のソートされたリストが、それらが入った順序とは異なる順序でソートされる可能性があることを意味します.

解決策は、これらのオブジェクトをソートするためのいくつかの基準を使用することです。これは、レイアウトの比較機能を設定することで実行できます。

デフォルトでは、比較関数はPart.textあなたのケースでは指定されていない を参照するため、各部分は同等であるため、Chrome の不安定な並べ替えは (それらが同等である場合) 順序を混合するため、重要ではないと考えられます。

これを修正するには、各パーツが必要な順序であるものを使用します。たとえば、data.textまたはdata.orderまたは何かを作成し、それを使用して比較します。

// NOTE this assumes data.text exists!
// You could use anything as long as it describes the order
function myCompareFunction(a, b) {
  var at = a.data.text; 
  var bt = b.data.text;
  if (at < bt) return -1;
  if (at > bt) return 1;
  return 0;
}

次に、レイアウト定義に次を追加します。

        layout:
        $(go.GridLayout,
          { ....... comparer: myCompareFunction })
于 2016-01-25T17:37:06.047 に答える