AngularJS从指令中预取数据

时间:2014-04-20 18:27:34

标签: javascript angularjs angularjs-directive ngtable

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

1 个答案:

答案 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
  );
}]);