Javascript 如何使用RequireJS动态加载html内容
我想加载带有RequireJS的html内容,如下所示:Javascript 如何使用RequireJS动态加载html内容,javascript,requirejs,requirejs-text,Javascript,Requirejs,Requirejs Text,我想加载带有RequireJS的html内容,如下所示: define(function (require) { "use strict"; return function (id) { var url = 'text!screens/' + id + '.html'; var html = require(url); }; }); 但我得到了这个错误: 错误:尚未为上下文加载模块名“text!screens/home.html\u未规范化2”: 如果我这样尝试: de
define(function (require) {
"use strict";
return function (id) {
var url = 'text!screens/' + id + '.html';
var html = require(url);
}; });
但我得到了这个错误:
错误:尚未为上下文加载模块名“text!screens/home.html\u未规范化2”:
如果我这样尝试:
define(function (require) {
"use strict";
return function () {
var html = require('text!screens/home.html');
}; });
一切都好。但这种方法不是很好,因为有硬核提示的url。如何解决此问题?内联参数化
require
调用只能对尚未加载的模块异步运行,就像您的情况一样。其原理是(另请注意url
位于一个数组中):
这样做的不便之处在于无法立即返回值。还可以看看(由许多库实现的)的原理。如何使用第一个代码块?(即,具有
“home”
字符串的代码在哪里?它在另一个模块中用作依赖项,在那里它将像函数一样被调用:load(id)。
var url = 'text!screens/' + id + '.html';
require([url],
function(text) {
// use text
},
function(err) { // OPTIONAL BUT GOOD PRACTICE
// handle error
}
);