0

ある種のモジュールを構築することで、このコードをより良い方法で構造化したいと考えています。ES6を使っているのでimport/にしてみましたexport

関数の例

function() {
    var graph = new joint.dia.Graph;

    var paper = new joint.dia.Paper({
        el: $('#canvas'),
        width: 600,
        height: 200,
        model: graph,
        gridSize: 1
    });

    var rect = new joint.shapes.basic.Rect({
        position: { x: 100, y: 30 },
        size: { width: 100, height: 30 },
        attrs: { rect: { fill: 'blue' }, text: { text: 'my box', fill: 'white' } }
    });

    var rect2 = rect.clone();
    rect2.translate(300);

    var link = new joint.dia.Link({
        source: { id: rect.id },
        target: { id: rect2.id }
    });

    graph.addCells([rect, rect2, link]);
}

だから私はこのようなものを手に入れたいと思っています。

script.js

import * from './config.js';

function() {
    var graph = graph();
    var paper = paper();
    var rect = rect();
    var rect2 = rect.clone();
    rect2.translate(300);
    var link = link();

    graph.addCells([rect, rect2, link]);
}

また、すべてのコンテンツは別のファイルにある必要があります。

config.js

export 
var graph = new joint.dia.Graph,
var paper = new joint.dia.Paper({
    el: $('#canvas'),
    width: 600,
    height: 200,
    model: graph,
    gridSize: 1
});
// ...

しかし、この試みには正しい構文がありません。これはどのように行うべきですか?

4

2 に答える 2

2

エクスポートされたメソッドとインポートされたモジュールに名前を付ける必要があります。

このコードを試してください。

Script.js

import * as config from './config.js';

function() {
    var graph = config.graph();
    var paper = config.paper();
    var rect = config.rect();
    var rect2 = config.rect.clone();
    rect2 = rect2.translate(300);
    var link = config.link();

    config.graph.addCells([rect, rect2, link]);
}

Config.js

export {graph as graph, paper as paper}
var graph = new joint.dia.Graph;
var paper = new joint.dia.Paper({
    el: $('#canvas'),
    width: 600,
    height: 200,
    model: graph,
    gridSize: 1
});
// ...
于 2016-11-02T00:34:02.747 に答える