问题:预先加载路由模板中使用的.ng文件的最佳方式和最佳时间是什么?< / p>
到目前为止,我已经找到了以下答案:
使用Angular的脚本指令。 问题:我的内容无法作为文字字符串加载,但需要从服务器获取。换句话说,我有一个.ng文件作为我的部分所以我不能做
我的内容必须保留在服务器上的.ng文件中并被提取使用$ templateCache.put将模板文字放入缓存中。与上述问题相同。
使用$ http加载.ng文件。这是因为它不是一个字符串文字,但我很难找到执行此操作的最佳时间,以便它不会阻塞(实现其异步但仍然)
为了避免建议我已经看过的资源,我已经阅读了以下内容: Is there a way to make AngularJS load partials in the beginning and not at when needed?
https://groups.google.com/forum/#!topic/angular/6aW6gWlsCjU
https://groups.google.com/forum/#!topic/angular/okG3LFcLkd0
https://medium.com/p/f8ae57e2cec3
http://comments.gmane.org/gmane.comp.lang.javascript.angularjs/15975
答案 0 :(得分:1)
也许使用2和3的组合。
就像你说的那样,$ http是异步的,所以为什么不在应用加载后将每个部分放入templateCache。
例如:
var myApp = angular.module('myApp', []);
myApp.run(function($http, $templateCache) {
var templates = ['template1.ng', 'template2.ng'];
angular.forEach(templates, function(templateUrl) {
$http({method: 'GET', url: templateUrl}).success(function(data) {
$templateCache.put(templateUrl, data);
});
});
});
我从来没有这个需要,并且肯定没有测试过,但想法就在那里。