为什么在HTML文件中注入了带有与require(“messages”)对应的脚本URL的脚本标记
<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="messages" src="lib/messages.js"> </script>
即使条件是假的?感谢。
以下是生成它的代码:
define(function (require) {
var bool = false;
if (bool) {
var messages = require('messages');
alert(messages.getHello());
} else{
alert("Module messages not loaded !");
}
});
测试下面的代码,发现没有生成加载messages.js的脚本标记
define(function (require) {
var bool = false;
if(bool){
var dep = 'messages';
var messages = require(dep);
alert(messages.getHello());
} else{
alert("Module messages not loaded !!");
}
});
同样在这里:
define(function (require) {
var bool = false;
if (bool) {
var messages = require('messages', function(messages){
alert(messages.getHello());
});
} else{
alert(" Module messages not loaded !");
}
});
答案 0 :(得分:0)
要求不带方括号的调用(如require('messages')
)使用正则表达式从文件中解析,并视为编写模块的依赖关系。作者必须采取这个决定来添加我们在这里讨论的糖语法。
如果您需要使用条件依赖项,则必须使用如下所示的方括号语法。
define(function (require) {
var bool = false;
if (bool) {
require(['messages'], function(messages){ //Note the square brackets around messages
alert(messages.getHello());
});
} else{
alert(" Module messages not loaded !");
}
});