Javascript 如何使用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

我想加载带有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”:

如果我这样尝试:

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
    }
);