AngularJS中是否有任何方法可以从url中预取数据。我听说过模板缓存。模板缓存可以从路径加载内容吗? 我已经创建了一个指令,但我遇到了问题。当我使用模板时,预加载html,但是当我使用templateURL时,它不是从路径预加载html,只在需要时加载。但是我需要预先加载数据。这可能吗?
cmsApp.directive('ptnPopup', function() {
return {
restrict: 'E',
transclude: true,
controller: 'MainCtrl',
template: '<div>{{bid}}</div>',
//templateUrl: './template/popups/primary_trading_name.html',
link: function(scope, element, attrs) {
scope.bid = 5;
}
};
});
答案 0 :(得分:0)
最简单,最不干涉的方法是在项目中引入一个任务,根据您的模板生成模板缓存。
喜欢https://github.com/ericclemmons/grunt-angular-templates
它基本上会根据你的模板生成一个js文件,它会将所有这些文件预加载到$ templatecache中。加载此js后,不会再向模板发出ajax请求,您可以在指令定义中继续使用templateURL语法。
angular.module('app').run(["$templateCache", function($templateCache) {
$templateCache.put("home.html",
// contents for home.html ...
);
...
$templateCache.put("src/app/templates/button.html",
// contents for button.html
);
}]);