4

我已经很好地实现了 RequireJS,并且基于 Grunt 的构建过程将 JS 应用程序优化到一个文件中,通过r.js它也可以正常工作。我所有的应用程序文件都连接成一个,以实现高效的生产部署。

优化还将我的r.js所有模板也包含在主应用程序 JS 文件中,这对于应用程序启动时或之后很快需要的模板也非常有用。对于可能永远不会看到的视图,或者在应用程序生命周期的后期可能会看到,这并不是很好,如果这些模板根据需要异步加载会更好。

所以我的问题是,有没有办法任意排除我的模板被包含到单体应用程序 JS 文件中并由 RequireJS 异步加载,还是不支持?如果不支持异步加载模板有哪些方法?

我正在使用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
    });
});
4

1 回答 1

1

我认为 Require JS 模块将解决您的问题。我没有尝试仅延迟加载模板,但您绝对可以将组件(视图、模型、模板)分离到 Require JS 模块中并延迟加载它们。

Ben Nadel 关于这个主题的博文对这个主题非常透彻。 http://www.bennadel.com/blog/2404-Compiling-Optimizing-A-Subset-Of-A-RequireJS-Application.htm

于 2013-09-15T00:47:00.440 回答