我有一个很好的RequireJS实现,以及一个基于Grunt的构建过程,它通过r.js
将JS应用程序优化到一个文件中,这也很好。我的所有应用程序文件都连接成一个,以实现高效的生产部署。
r.js
优化也将我的所有模板都包含在主应用程序JS文件中,这对于应用程序启动时或之后很快就会需要的模板也很有用。对于可能永远不会被看到的视图,或者可能在应用程序生命周期中稍后看到的视图,它不是那么好,如果这些模板根据需要加载异步,那就更好了。
所以我的问题是,有没有办法随意排除我的模板被包含在整体应用程序JS文件中并由RequireJS加载异步,或者这是不支持的?如果不支持在async中加载模板的方法是什么?
我正在使用tpl
文字模板插件和Backbone.Marionette
。我的模板用法目前看起来有点像这样:
define(function (require) {
var Backbone = require("backbone");
var tpl = require("tpl!./some-view-template.tpl");
return Backbone.Marionette.ItemView.extend({
template: tpl
});
});
答案 0 :(得分:1)
我认为Require JS模块可以解决您的问题。我没有试过延迟加载模板,但你绝对可以将组件(视图,模型,模板)分离为Require JS模块并延迟加载它们。
Ben Nadel关于此主题的博客文章对此主题非常透彻。 http://www.bennadel.com/blog/2404-Compiling-Optimizing-A-Subset-Of-A-RequireJS-Application.htm