我想使用 RequireJS 加载 html 内容,如下所示:
define(function (require) {
"use strict";
return function (id) {
var url = 'text!screens/' + id + '.html';
var html = require(url);
}; });
但我收到此错误: 错误:模块名称“text!screens/home.html_unnormalized2”尚未加载上下文:_
如果我以这种方式尝试:
define(function (require) {
"use strict";
return function () {
var html = require('text!screens/home.html');
}; });
一切都好。但由于硬核提示的网址,这种方法不是很好。我该如何解决这个问题?
最佳答案
内联参数 require
调用只能对尚未加载的模块异步运行,就像您的情况一样。原理是(另请注意 url
位于数组中):
var url = 'text!screens/' + id + '.html';
require([url],
function(text) {
// use text
},
function(err) { // OPTIONAL BUT GOOD PRACTICE
// handle error
}
);
这样做的不便之处在于无法立即返回值。另外看看promises的原理(由许多库实现,jQuery too)。
关于javascript - 如何使用 RequireJS 动态加载 html 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19373067/