我想用模塊加載所有我的模板以用於項目,但我不確定我在做的方式(a)是否會讓代碼使用r.js進行優化和(b)是有意義的 - 基本上,我擔心優化程序不會獲取define()塊內的嵌套require。理想情況下,我希望在運行r.j之後擁有一個縮小的單個文件,這是所有的依賴項,包括可能的文本文件。用requirejs以優化的方式加載模板
template_loader.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()
});
的目標是有一處正在處理模板資源加載,然後將其提供給其他模塊。
這似乎是一個很好的做法,如果不是,什麼是更好的策略?
相反,你有沒有考慮過分別加載你的模塊?說,模塊的邏輯和模板在一起。這將導致更易於管理和模塊化的代碼。 – janith
這很好,當模板對應於單個模塊,但對於像UI小部件或通用構建塊(行,按鈕等)的東西它不是這樣1:1 – dmp