0

所有布局都在 LayoutService projects/swimlane/ngx-graph/src/lib/graph/layouts/layout.service.ts 中声明

我可以创建一个新布局,但 LayoutService#getLayout() 无法发现新布局。

const layouts = {
  dagre: DagreLayout,
  dagreCluster: DagreClusterLayout,
  dagreNodesOnly: DagreNodesOnlyLayout,
  d3ForceDirected: D3ForceDirectedLayout,
  colaForceDirected: ColaForceDirectedLayout
};

@Injectable()
export class LayoutService {
  getLayout(name: string): Layout {
    if (layouts[name]) {
      return new layouts[name]();
    } else {
      throw new Error(`Unknown layout type '${name}'`);
    }
  }
}

我得到:抛出新的错误(Unknown layout type '${name}');

4

1 回答 1

0

也在这里发布我的答案:

您需要使用 Layout 接口实现一个类,然后从该类创建一个对象,并将该对象传递给布局输入而不是字符串。

这是一个展示如何做到这一点的组件: https ://github.com/swimlane/ngx-graph/blob/master/src/docs/demos/components/ngx-graph-custom-curve/ngx-graph-custom-曲线.component.ts#L15

于 2019-06-26T14:59:24.273 回答