我使用require.js
的text
插件来包含一些html模板,如下所示:
define([
'text!/assets/templates/home/myApp.templates.home.home-pane.html',
'text!/assets/templates/nav/myApp.templates.nav.top-navbar.html',
'text!/assets/templates/shared/myApp.templates.shared.layout.html',
...
], function (HomeTmpl, TopNavbarTmpl, SharedLayoutTmpl, RegisterVerticalTmpl, LoginVerticalTmpl, ThingListItemTmpl, ThingSearchTmpl, TestTestTmpl) {
var allHtml = function () {
return HomeTmpl + TopNavbarTmpl + SharedLayoutTmpl + RegisterVerticalTmpl + LoginVerticalTmpl + ThingListItemTmpl + ThingSearchTmpl + TestTestTmpl;
}
return {
All: allHtml,
HomeTmpl: HomeTmpl,
TopNavbarTmpl: TopNavbarTmpl,
...
}
});
我真的没有必要保留对每个模板的引用(即使我现在正在这样做);我真的只需要将所有模板转储到我的 head
中即可。
这种做事方式很麻烦,因为它需要我(没有双关语)为每个新模板 html 文件添加引用。
我想做的是这样的:
define(['text!/assets/templates/*'], function(Templates) { return Templates; });
可以这样做吗?如果是这样,包含所有包含的文件并将其串在一起作为一个大引用的语法是什么?
最佳答案
RequireJS 不支持这一点,因为它(总是)不可能从远程服务器获取目录列表。你想要的是像 Grunt 这样的构建工具.
例如,使用 grunt-contrib-concat任务,您可以使用此配置将所有模板连接到一个文件(然后使用 RequireJS 包含该文件):
concat: {
templates: {
src: ['assets/templates/*'],
dest: 'templates.html'
}
}
关于javascript - 定义 requirejs 模块,包括文件夹中的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23672884/