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/

相关文章:

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

html - Symfony 和 RequireJS - 如何提供静态 html 文件?

javascript - 在 requireJS 模块中加载模板图像

javascript - 使用 Node.js 遍历目录

javascript - RequireJS 并不总是加载模块

javascript - Angular $watchCollection 旧值未针对多次更新正确更新

javascript - RequireJS 与 jQuery 和模块 - 未捕获的 ReferenceError : Module is not defined

knockout.js - Durandal 中的 Knockout Mapping 插件未定义

javascript - 使用node.js从url解析xml文件并循环获取其中的所有url

javascript - 基本 react 多页应用程序更改标题内容