我在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
}
答案 0 :(得分:3)
documentation中的示例回答了您的问题。
总结一下:如果要从路由表中获取所有模板URL,可以将$templateCache
注入run方法(可能还有$route
),并将模板插入缓存中。 / p>
HTH!
答案 1 :(得分:2)
我为此目的使用grunt-angular-templates。这是一个连接和安排的艰巨任务。将角度模板预加载到$templateCache
。我在构建项目时仅在生产模式下运行它,以避免在开发模式下增加构建时间。
您可以按如下方式使用它(假设您使用grunt):
...
ngtemplates: {
myProject: {
options: {
prepend: '/',
concat: 'out\\app.min.js'
},
src: ['app/**/*.html'],
dest: 'out/templates.js'
}
}
...
它将所有html文件从app dir汇总到templates.js
,然后将templates.js
文件追加到app.min.js
文件。在生产中,只有app.min.js
文件包含所有js代码和模板。对我来说很有用(对你来说也是如此,假设你的js代码大小合适)。