问题标签 [requirejs-text]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
722 浏览

backbone.js - RequireJs 文本插件和 UnderscoreJs 模板

好的人们,

我正在使用 RequireJs 文本插件在我的主干应用程序中引入下划线模板 (.html)。不幸的是,我的模板中的下划线代码被呈现为纯文本。

});

这是我的视图代码,您可以看到我正在拉入两个模板并进行设置。但是它被渲染为...

有人遇到过这个问题吗?

0 投票
1 回答
307 浏览

javascript - 敲除模板在 IE 8 中使用 RequireJS 和 Require Text 不起作用

使用 IE8 时,我在 JavaScript 中渲染树对象时遇到问题。为了在 HTML 页面中编写层次结构,我需要使用敲除模板递归地渲染树对象。

我正在使用剔除组件来使用 requirejs 和 require.text 呈现最终结果

该组件在除 IE8 之外的所有浏览器中都可以正常工作。我知道我不应该使用 IE8,但这是一个公司的内部网站,目前无法轻松升级所有浏览器。我简化了代码,只使用模板在普通列表中呈现数字列表。

这是 test.vm.js 中的 ViewModel:

这是 test.view.js 中的视图:

最后,调用该组件的 HTML 页面:

我可以看到浏览 DOM 的主要区别是模板完全在其他浏览器中呈现

而在 IE8 中为空

如果我将模板“testTemplate”放在视图文件之外并直接放在 HTML 页面中,组件就会开始工作。组件不工作只是因为模板是空的。将“testTemplate”放在 HTML 中是一个部分解决方案,但我需要找出为什么它在放置在视图文件中时不起作用。

更新:我简化了场景。显然是组件注册中的“模板”参数中的一些错误。如果模板包含在脚本标签中,则内容将被忽略并且不会在页面中呈现。如果我决定将其更改为使用<template>标签,组件会尝试解析模板内的数据绑定并显示错误。模板标签应该在绑定中被忽略,但组件不会忽略标签。我尝试使用我阅读的最后一个标签进行时间破解,通过将模板包含在 textarea 标签中并放置 display:none 来配置为被模板忽略。现在内容在所有浏览器中呈现,但我不喜欢这个解决方案。

0 投票
3 回答
1642 浏览

html - RequireJS 文本插件:无法从其他域加载 HTML

我想用 require.js 从另一个域中获取一些 html。我知道 CORS 政策不容易做到这一点。注意:到目前为止,我已经配置了 Web 服务器(使用Access-Control-Allow-Origin "*"和其他指令)和 require.js,以便从其他域加载所有 JS 和 CSS 文件(带有require-css插件的 css)正如预期的那样 - 只是获取 html 会产生问题。但是在浏览器网络协议中,我可以看到甚至加载了 html 内容。但是,此内容不会传递给 require 函数!浏览器获取内容,但 require.js 没有将其作为参数提供...

我的配置:

两个注意事项:useXhr配置取自require.js 文本插件在文件名中添加“.js”,但是否存在没有区别。我?在 htmlTemplate 路径中附加了一个。这样,.js不会将其附加到 URL 并且浏览器会加载 html 内容 - 如前所述,不幸的是,没有 require.js 会将其传递给 parameter htmlTemplate

我能做些什么?我已经读过,如果我使用require.js 优化器,生成的文件就不会再出现这个问题了(但是它可以工作......)。但是我需要开发我的 JS 而不对每次编辑进行优化。

更新:找到了一个解决方案,但如果有人能提供“正确”的解决方案,我会很高兴。

0 投票
0 回答
1010 浏览

javascript - 未处理的拒绝错误:模块加载超时:模板注册表项

我们创建了一个插件,它的本地演示工作。

https://github.com/shaunluttin/aurelia-open-id-connect/tree/master/src

但是,将插件安装到另一个项目中会失败,并出现这两个错误,它们抱怨open-id-connect-user-block.htmlview/view-model 组件。

未捕获的类型错误:plugin.load 不是函数

未处理的拒绝错误:模块加载超时:template-registry-entry!aurelia-open-id-connect/open-id-connect-user-block.html_unnormalized2,template-registry-entry!aurelia-open-id-connect/open -id-connect-user-block.html,text!aurelia-open-id-connect/open-id-connect-user-block.html_unnormalized3,text!aurelia-open-id-connect/open-id-connect-user -block.html http://requirejs.org/docs/errors.html#timeout

我们尝试过的

configure在我们插件的函数中添加组件作为全局资源。

configure在消费应用程序的函数中添加插件。

aurelia.json在消费应用程序的文件中添加插件。

requirejs/text插件设置为stub:false.

这会产生一个 404 新错误:

未处理的拒绝错误:src/../node_modules/aurelia-open-id-connect/dist/amd/es5/open-id-connect/open-id-connect-user-block.html HTTP 状态:404

我们读过的

我们在 GitHub 上看到了这个问题:安装普通的 Aurelia 插件,我做错了什么?

  • 2016 年 7 月 3 日,Aurelia CLI 不支持包含 HTML 模板的插件。
  • 7 月 17 日,它应该与 0.16.1 版本一起使用;我们使用的是 0.18.0,但它不起作用。
  • 7 月 28 日,动态要求文本需要stub:falsetext插件中设置aurelia.json > build.loader.plugins
0 投票
1 回答
1805 浏览

requirejs - 将带有插件的 RequireJS/AMD 迁移到 Webpack

我正在将大型 RequireJS 应用程序迁移到 Webpack。使用 Webpack 的基本构建似乎工作正常——我已经将“路径”定义移动到“别名”,并且我已经为我的内容和垫片设置了加载器,比如 jQuery。

但是,还有一个问题,我不知道如何解决。基本上,RequireJS 应用程序使用“文本插件”来包含 HTML 模板,而 Webpack 会为 HTML 模板抛出“未找到模块”错误。

我要捆绑的示例 AMD 模块如下所示:

带有文本插件的 AMD 模块

我可以使用 raw-loader 来加载模板文件。我将“文本”别名为“原始加载器”:

但是,对于上面所需的所有模板,我都看到以下错误:

我尝试用'text-loader!...'替换'text!...',然后我看到这个错误,抱怨它无法加载/找到HTML模块!

webpack.config.js,版本 3.9.1

任何人都知道如何让 Webpack 与 RequireJS Text 插件很好地配合使用?

谢谢!