首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Require.js中使用JustGage

在Require.js中使用JustGage
EN

Stack Overflow用户
提问于 2015-05-05 05:29:37
回答 2查看 1K关注 0票数 1

JustGage使用的是拉斐尔,正如讨论得很好的here一样,它不符合AMD标准(因此不适用于Require.js)。

我以前没有使用过Require.js,也没有做过很多JS,所以我正在努力解决这个问题。已经有了大量的试验和错误;)

使用here建议的方法,我已经将拉斐尔模块拆分成单独的文件,并分别包含它们,并猜测如何为JustGage做些什么。

代码语言:javascript
复制
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模块一样开始使用拉斐尔了”,这不是很有帮助;)

我想我需要在main.js中做点什么?

在我的cshtml页面中

代码语言:javascript
复制
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希望拉斐尔在全球范围内出现?

有没有关于让JustGage正常工作的帮助?或者推荐一个与Require.js兼容的"speedo"-type量具的等价库?

EN

回答 2

Stack Overflow用户

发布于 2015-05-05 05:54:33

差不多了,您还需要将它添加到函数中,以便JustGage可以使用它。

代码语言:javascript
复制
require(["raphael", "justgage"], function(raphael,JustGage) {

如果justgauge是一个模块,那么你应该在模块中加载依赖项,因为它将在拉斐尔的模块中查找,但是由于你已经加载了它,它应该可以工作。

更容易跟踪您的依赖项并在需要的地方加载它们,

代码语言:javascript
复制
define(['module' , "pathto/raphael"], function (module, raphael) {
票数 0
EN

Stack Overflow用户

发布于 2016-05-17 14:00:15

这对我很有效:

代码语言:javascript
复制
require('eve');
window.Raphael = require('raphael');
require('justgage');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30040314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档