我想为一个带有模块的项目加载我的所有模板,但我不确定我这样做的方式 (a) 是否会让代码使用 r.js 和 (b) 进行优化- 基本上,我担心 define() 块内的嵌套 require 不会被优化器拾取。理想情况下,我希望在运行 r.js 之后有一个缩小的单个文件,它是所有依赖项,如果可能的话,包括文本文件。
模板加载器.js
define(["jquery","underscore","icanhaz"],function($,_,ich){
var template_names = [
'test'
];
require([
'text!templates/test.tpl',
],function (){
for (var i = arguments.length - 1; i >= 0; i--) {
ich.addTemplate(template_names[i],arguments[i]);
};
});
});
然后在我的主 app.js 中:
require(['jquery','underscore','backbone','icanhaz','template_loader'],function($,_,Backbone,ich,loader){
// templates should be available here as ich.template_name()
});
目标是在一个地方处理模板资源加载,然后其他模块可以使用这些资源。
这似乎是一种好方法,如果不是,什么是更好的策略?