gpt4 book ai didi

javascript - RequireJS:如何从一个模块加载多个函数?

转载 作者:行者123 更新时间:2023-12-02 12:41:26 25 4
gpt4 key购买 nike

我有一个需要返回 3 个函数的模块,我这样编写了该模块(对所有 return 感到抱歉,我直接从 CoffeeScript 翻译了这个):

(function() {
define("inColor", [], function() {
var init;
init = function(value, obj) {
var foundVal;
foundVal = void 0;
$.each(obj, function(key, val) {
if (value === key) {
foundVal = val;
}
});
return foundVal;
};
return init;
});

define("fillColor", ['inColor'], function(inColor) {
var capletColor, init;
capletColor = {
primary: "#3DA0DB",
info: "#B5D1D8",
success: "#2ECC71",
warning: "#FFCC33",
danger: "#E15258",
inverse: "#62707D",
theme: "#f37864",
"theme-inverse": "#6CC3A0",
palevioletred: "#913B53",
green: "#99CC00",
lightseagreen: "#1ABC9B"
};
init = function(obj) {
var codeColor;
inColor = inColor(obj.data("color") || obj.data("toolscolor"), capletColor);
codeColor = inColor || obj.data("color") || obj.data("toolscolor");
return codeColor;
};
return init;
});

define("rgbaColor", [], function() {
var init;
init = function(hex, opacity) {
var b, bigint, g, r;
bigint = parseInt(hex.replace("#", ""), 16);
r = (bigint >> 16) & 255;
g = (bigint >> 8) & 255;
b = bigint & 255;
if (opacity || opacity <= 1) {
return "rgba(" + r + "," + g + "," + b + "," + (opacity || 1) + ")";
} else {
return "rgb(" + r + "," + g + "," + b + ")";
}
};
return init;
});

define('colorModuleLoader', ['inColor', 'fillColor', 'rgbaColor'], function(inColor, fillColor, rgbaColor) {
return {
inColor: inColor,
fillColor: fillColor,
rgbaColor: rgbaColor
};
});

}).call(this);

现在我像这样加载我的模块:

require(['tmp/assets/scripts/admin/modules/caplet.color'], function(colorModuleLoader) {
return window.alert(colorModuleLoader.rgbaColor("#F37864", 0.1));
});

模块已加载,但当我尝试提醒该值时,错误提示 colorModuleLoaderundefined,有人能解释为什么吗?

最佳答案

就 RequireJS 而言,您有四个模块,它们都在一个文件中。 (define 调用多少个模块。)正确操作 RequireJS 的基本规则是每个文件应该有一个模块,并且您的 define 应该有一个模块。调用不应命名其模块。 (优化器 r.js 添加模块名称。)这些规则有一些异常(exception),但您确实需要知道您正在做什么才能使用这些异常(exception)(并能够解释为什么您需要这样做与基本规则不同的东西)。

你能做的就是拥有你的tmp/assets/scripts/admin/modules/caplet.color.js文件包含一个模块,可导出您需要的所有功能:

define(function() {

function inColor() {...}

function fillColor() {...}

function rgbaColor() {...}

return {
inColor: inColor,
fillColor: fillColor,
rgbaColor: rgbaColor
};

});

关于javascript - RequireJS:如何从一个模块加载多个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23081535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com