0

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;
        }
    };
});
4

1 回答 1

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
  );
}]);
于 2014-04-20T19:02:01.583 回答