1

JustGage は Raphael を使用しますが、ここで詳しく説明されているように、AMD に準拠していません (したがって、Require.js では動作しません)。

私は以前に Require.js を使用したことがなく、多くの JS も使用したことがないため、これを回避するために戦っています。色々試行錯誤しました(;_;)

ここで提案されているアプローチを使用して、Raphael モジュールを個別のファイルに分割して個別にインクルードし、JustGage で何をすべきかを推測しました。

require.config({
    paths: {
        //other links removed
        'eve': 'vendor/eve/eve',
        'raphael-core': 'vendor/raphael/raphael.core',
        'raphael-svg': 'vendor/raphael/raphael.svg',
        'raphael-vml': 'vendor/raphael/raphael.vml',
        'raphael': 'vendor/raphael/raphael.amd',
        'justgage': 'vendor/justgage/justgage.1.0.1.min'
    },
    shim: {
        'eve': {
            exports: "eve"
        },
        'raphael': {
            deps: ['eve'],
            exports: "Raphael"
        },
        'justgage': {
            deps: ['raphael'],
            exports: "JustGage"
        }
    }
});

しかし、指示には「上記の構成の後、他のrequire-jsモジュールと同様にRaphaelの使用を開始できます」と書かれており、あまり役に立ちません;)

main.jsで何かをする必要があると思いますか?

私が持っている私のcshtmlページで

require(["raphael", "justgage"], function(JustGage) {
    $(function() {
        var a = new JustGage({
            id: "pvgauge",
            value: @Model.GaugeValues.PV,
            min: @Model.PVGauge.MinValue,
            max: @Model.PVGauge.MaxValue,
            title: "Personal Volume",
            label: "PV",
            levelColors: gaugeSettings.levelColors,
            levelColorsGradient: gaugeSettings.levelColorsGradient,
            showInnerShadow: gaugeSettings.showInnerShadow,
            shadowSize: gaugeSettings.shadowSize,
            labelFontColor: '#7ACE30',
            titleFontColor: gaugeSettings.titleFontColor,
            valueFontColor: gaugeSettings.valueFontColor
        });
    });
});

これで少なくとも JustGage が見つかりましたが、エラーが発生しました'Raphael' is undefined.

(cshtmlファイルにスクリプトを直接インクルードすることも試みましたが、エラーが発生しました'Mismatched anonymous define() module: function (eve) {'

Require.js は物事がグローバル スコープにないことを意味するという私の理解は正しいですか? また、JustGage は Raphael がグローバル スコープに含まれることを期待していますか?

JustGage を機能させるためのヘルプはありますか? または、Require.js で動作する「speedo」タイプのゲージ用の同等のライブラリの推奨事項はありますか?

4

2 に答える 2

0

ほぼそこに、関数にも追加する必要があるため、JustGage で使用できます。

require(["raphael", "justgage"], function(raphael,JustGage) {

justgauge がモジュールの場合、そのモジュールで raphael を検索するため、モジュールに依存関係をロードする必要がありますが、既にロードしているため、動作するはずです。

依存関係を追跡し、必要な場所にロードするのが簡単です。

define(['module' , "pathto/raphael"], function (module, raphael) {
于 2015-05-04T21:54:32.900 に答える
0

これは私のために働いた:

require('eve');
window.Raphael = require('raphael');
require('justgage');
于 2016-05-17T06:00:14.993 に答える