我有一个部分,其中有一个面板,其形状和svg图像添加到图表中。 接下来是nodetemplate,然后是groupTemplate。
1] myDiagram.add( $$(go.Part,"表",
2] myDiagram.nodeTemplate =
3] myDiagram.groupTemplate =
为什么红色圆圈和文字出现在mozilla的底部.... ???
IE和Chrome中的渲染相同,但与mozilla不同。任何人都可以帮忙!!
由于
答案 0 :(得分:1)
发生这种情况是因为Chrome的Array.sort
不是一个稳定的类型。这意味着如果你必须对一个元素列表进行排序,并且没有标准来确定一个元素应该先于另一个元素,那么结果排序列表的排序顺序可能与它们的顺序不同。
解决方案是使用一些标准来对这些对象进行排序。您可以通过设置layout's comparer function。
来完成此操作默认情况下,比较器功能会查看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 })