小编典典

有没有办法让AngularJS在开始时而不是在需要时加载部分?

all

我有这样的路线设置:

var myApp = angular.module('myApp', []).
    config(['$routeProvider', function ($routeProvider) {
    $routeProvider.
        when('/landing', {
            templateUrl: '/landing-partial',
            controller: landingController
        }).
        when('/:wkspId/query', {
            templateUrl: '/query-partial',
            controller: queryController
        }).
        otherwise({
            redirectTo: '/landing'
        });
}]);

我希望能够让 angularjs 在开始时而不是在请求时下载部分内容。

可能吗?


阅读 68

收藏
2022-07-27

共1个答案

小编典典

是的,至少有两种解决方案:

  1. 使用script指令 ( http://docs.angularjs.org/api/ng.directive:script ) 将您的部分放在最初加载的 HTML 中
  2. 如果需要,您还可以从 JavaScript 填写$templateCachehttp://docs.angularjs.org/api/ng.$templateCache)(可能基于$http调用结果)

如果您想使用方法(2)填写,$templateCache您可以这样做:

$templateCache.put('second.html', '<b>Second</b> template');

当然,模板内容可以来自$http调用:

$http.get('third.html', {cache:$templateCache});

这里是那些技术的 plunker:http
://plnkr.co/edit/J6Y2dc?p=preview

2022-07-27