2017-05-02 10 views
0

Angular 2.4.0、tsc 2.3.1を使用して、JointJS/graphlibでDagreを使用して、SystemJSをローダーとしてAngular2でグラフを描画しようとしています。Dagre Angular2 SystemJSモジュールのロード

http://www.daviddurman.com/automatic-graph-layout-with-jointjs-and-dagre.html

JointJSで必要とされるように私は var dagre = require('dagre');

マイAngular2コンポーネントが import * as dagre from 'dagre';

マイSystemJSの設定が含まれ、ブラウザで 'dagre' オブジェクトを取得する方法を見つけ出すことはできません。

(function() { 
    System.config({ 
    map: { 
     'dagre': '/static/libs/dagre/dagre.js' 
    } 
}); 
})(); 

それはdagre.layoutを呼び出そうとしたときにdagreをロードすることができJointJSで未定義のエラーにつながる: Cannot read property 'layout' of undefined

// Executes the layout. 
dagre.layout(glGraph, { debugTiming: !!opt.debugTiming }); 

多分これは自分自身をライブラリに問題があることを輸出していないか、または私は形式を指定する必要があります私のSystemJSの設定?

答えて

0

だから私はこれを修正し、正確かわからないんだけど、私は三つのことでした:

1)npm install -D @types/dagre

2)私のcomponent.ts

3でimport * as dagre from dagre;は)形式を追加しました:グローバルSystemJS設定へ

(function() { 
    System.config({ 
    map: { 
     'lodash': '/static/libs/lodash/index.js', 
     'dagre': '/static/libs/dagre/dagre.js', 
     'graphlib': '/static/libs/graphlib/grpahlib.umd.js', 
    }, 
    meta: { 
     'dagre': { 
     format: 'global', 
     deps: ['lodash'], 
     }, 
     'graphlib': { 
     format: 'global', 
     deps: ['lodash'], 
     } 
    } 
}); 
})(); 
関連する問題