wco*_*ert 2 requirejs underscore.js
require.config({
paths: {
jquery: 'libs/jquery',
underscore: 'libs/underscore',
}
});
define([
'jquery',
'underscore',
], function($,_){
var test = _.template("hello: <%= name %>",{name:"warren"});
});
Run Code Online (Sandbox Code Playgroud)
鉴于以上代码使用requirejs加载jquery和下划线,为什么我会收到此错误...
Uncaught TypeError: Cannot call method 'template' of null
Run Code Online (Sandbox Code Playgroud)
所有JS似乎都在加载......错误指向_.template行.这真让我抓狂...
您确定已将下划线库捆绑在一起以便与requireJS一起使用吗?
当你写:
define([
'jquery',
'underscore',
], function($,_){
var test = _.template("hello: <%= name %>",{name:"warren"});
});
Run Code Online (Sandbox Code Playgroud)
'_'变量(回调函数的第二个参数)与下划线库的导出(指定的第二个依赖项)一起分配.
我猜你使用了下划线的原始版本,这不是requireJS的包.在你的underscore.js文件中,在开头添加以下行:
define(function () {
Run Code Online (Sandbox Code Playgroud)
这条线在最后:
return _;});
Run Code Online (Sandbox Code Playgroud)
因此,导出配置得很好.
另一种可能的解决方案是使用全局'_'变量:您需要做的就是删除回调的第二个参数.
define([
'jquery',
'underscore',
], function(){
var test = _.template("hello: <%= name %>",{name:"warren"});
});
Run Code Online (Sandbox Code Playgroud)
从那里,您的浏览器将使用'_'全局变量,该变量在下划线中定义,并在调用回调时设置.
jQuery需要相同的行为.
| 归档时间: |
|
| 查看次数: |
2645 次 |
| 最近记录: |