javascript - 如何使用 RequireJS 动态加载 html 内容

标签 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_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/

相关文章:

javascript - 在 RequireJS 中始终需要某些依赖项

javascript - 如何将两个ajax结合在一起

javascript - RequireJs minifcation - 复杂的目录结构

javascript - 主干+要求+数据映射: "Datamap is not defined"

RequireJS文本插件将 '.js'添加到文件名但在同一个域上

jquery - RequireJS - 在上下文中隔离 jQuery 版本和插件

requirejs - Marionette,如何动态更改 View 的模板

javascript - Angular 标签指令问题

javascript - 错误 : Cannot find module '@rails/webpacker' rails 6

javascript - 将字符串格式更改为剑道网格中的日期