我试图在MVC.net中使用工厂模式使用requirejs渲染模块,但是我收到了错误
Uncaught Error: Mismatched anonymous define() module: function () {
我的项目文件夹结构如下所示。
require.config.js:
requirejs.config({
"baseUrl": "Scripts",
"paths": {
"JALModule": "Views/Claim/Startup/JAL",
"SeniorCareModule": "Views/Claim/Startup/NonReferral/SeniorCare"
}
});
我正在使用.net捆绑和缩小,当在下面的浏览器上呈现应用程序时就是结构。
JALModule.js:
define(function () {
return {
// declare the function to change the background color
setBackgroundJAL: function (color) {
console.log('HI');
}
};
});
我从工厂类访问上述模块:
define(function (require) {
var claimTypes = {
'JAL': require('JALModule')
, 'SeniorCare': require('SeniorCareModule')
//, 'W2': require('modules/W2')
};
return function (claimType) {
try {
return new claimTypes[claimType];
} catch (error) {
throw new Error('Unknown Claim Type Specified.');
}
}
});
我是否遗漏了一些配置,或者是否错误地定义了相对路径。 需要你的宝贵意见。
由于 Sajesh
答案 0 :(得分:-1)
在尝试了所有可能性后,我能够解决这个问题。 1)我不得不更改配置文件以提供正确的路径:
requirejs.config({
"baseUrl": "../Scripts",
"paths": {
"JAL": "../../Views/Claim/Startup/JAL",
"SeniorCare": "../../Views/Claim/Startup/NonReferral/SeniorCare",
"ClaimStartupFactory": "../../Views/Claim/Startup/ClaimStartupFactory"
}
});
2)此外,我还必须删除requirejs config中定义的所有文件的.net缩小。
3)直接引用Layout.cshtml文件中的requirejs配置链接
<script src="~/Scripts/require.config.js"></script>
希望这会有所帮助。