在try([])中尝试加载require时,require不是函数

时间:2016-05-20 14:18:10

标签: jquery requirejs

我正在学习requireJS的基础知识。我试图将我的html代码加载到index.html #container DOM。但我有一个错误

  

"要求不是一个功能"

这是我的代码:
1。的index.html

<script data-main="js/app" src="js/require.js"></script>

2.app.js

require(['../page1'], function(View){    
var v = new View();
v.init();  });

3.page1.js

define([], function (require) {
 var view1 = function(){
 this.init = function(){
 template = require('page1.html');
 $("#container").html(template);
 }
};
return view1;
});

1 个答案:

答案 0 :(得分:1)

您应该将空的依赖关系数组放在define中,如下所示:

define(function (require) {

如果你这样做,RequireJS将解释你想要使用CommonJS风格的require调用,并自动将require函数作为你回调的第一个参数传递。当您拥有空数组时,RequireJS会将您的模块解释为普通的AMD模块,并且不会向其传递任何内容。

请参阅文档的this section。如果您不需要使用function(require, exports, module)function(require),则文档会显示exports,但module也可以正常工作。

您应该使用text plugin加载HTML,否则它将被解释为JavaScript,显然这不会起作用。安装完成后,将require('page1.html')更改为require('text!page1.html')