use*_*495 2 javascript requirejs
我有一个需要返回3个函数的模块,我写了这样的模块(抱歉所有returns,我直接从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);
Run Code Online (Sandbox Code Playgroud)
现在我像这样加载我的模块:
require(['tmp/assets/scripts/admin/modules/caplet.color'], function(colorModuleLoader) {
return window.alert(colorModuleLoader.rgbaColor("#F37864", 0.1));
});
Run Code Online (Sandbox Code Playgroud)
模块已加载,但错误说colorModuleLoader是undefined当我尝试提醒值时,有人可以解释原因吗?
就RequireJS而言,那里有四个模块,它们都在一个文件中.(与define调用一样多的模块.)RequireJS正常运行的基本规则是每个文件应该有一个模块,并且您的define调用不应该命名它们的模块.(优化器r.js添加了模块名称.)这些规则有一些例外,但你真的需要知道你在做什么才能使用这些异常(并且能够解释为什么你需要做一些不同于基本规则的事情).
你可以做的是让你的tmp/assets/scripts/admin/modules/caplet.color.js文件包含一个导出你需要的所有功能的模块:
define(function() {
function inColor() {...}
function fillColor() {...}
function rgbaColor() {...}
return {
inColor: inColor,
fillColor: fillColor,
rgbaColor: rgbaColor
};
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3126 次 |
| 最近记录: |