0

我在 Angular 中使用 $routeProvider。每当我去特定路线时,我都会在控制台中看到日志:

XHR finished loading: "http://localhost:8080/root/partials/view1.html".
XHR finished loading: "http://localhost:8080/root/partials/view2.html".
...

在这一点上,我认为特定页面被缓存在浏览器中,并且可以更快地被引用。第一次引用 Angular 时,如何在后台为我的所有路由创建 XHR?我搜索这样的东西:

for ( /* every page inside routeProvider */ ) {
    // XHRs the page
}
4

2 回答 2

3

文档中的示例回答了您的问题。

总结一下:你可以注入$templateCache到你的 run 方法中(如果你想从路由表中获取所有模板 URL,可能会一起$route),并将模板插入到缓存中。

于 2013-08-28T13:21:30.373 回答
2

为此,我使用grunt-angular-templates。这是一项繁重的任务,它将角度模板连接并预加载到$templateCache. 我在构建项目时只在生产模式下运行它,以避免在开发模式下增加构建时间。您可以按如下方式使用它(假设您使用 grunt):

        ...
        ngtemplates: {
            myProject: {
                options: {
                    prepend: '/',
                    concat: 'out\\app.min.js'
                },
                src: ['app/**/*.html'],
                dest: 'out/templates.js'
            }
        }
       ...

它将应用程序目录中的所有 html 文件连接到templates.js,然后将文件附加templates.jsapp.min.js文件。在生产中,只有app.min.js包含所有 js 代码和模板的文件。对我很有用(对你来说也应该如此,假设你的 js 代码大小合理)。

于 2013-08-28T13:28:59.137 回答