Angular 4如何从S3加载控制器/模块js文件?

时间:2018-02-07 23:01:36

标签: javascript angular

我没有后端运行角度,只是在S3中使用静态js / html文件,如何在S3内部存储为静态文件的延迟加载控制器/模块?



<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <script src="https://code.jquery.com/jquery-1.11.2.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.js"></script>
        <script src="https://raw.githubusercontent.com/ocombe/ocLazyLoad/master/dist/ocLazyLoad.js"></script>

    </head>
    <body>
        <h3>Lazy load succeded if you can see 'Hello world' below</h3>
        <div id="example" ng-app="LazyLoadTest" ng-controller="TestController"></div>
        <script>
            angular.module("LazyLoadTest", ["oc.lazyLoad"])
                .controller("TestController", function($scope, $ocLazyLoad, $compile) {
                    $ocLazyLoad.load("https://github.com/ocombe/ocLazyLoad/raw/master/examples/simpleExample/js/testApp.js").then(function() {
                        console.log('loaded!!');
                        var el, elToAppend;
                        elToAppend = $compile('<say-hello to="world"></say-hello>')($scope);
                        el = angular.element('#example');
                        el.append(elToAppend);
                    }, function(e) {
                        console.log('errr');
                        console.error(e);
                    })
                });
        </script>
    </body>
</html>
&#13;
&#13;
&#13;

我知道ocLazyLoad,但仅适用于角度1

1 个答案:

答案 0 :(得分:0)

Angular 4+在路线中内置了延迟加载选项。 Angular.io文档有助于解释如何在此处完成此任务。

https://angular.io/guide/lazy-loading-ngmodules

请记住,Angular 4+讨论&#34;预加载&#34;,这可能是您在上面显示的解决方案。这意味着在初始加载之后,所有其他模块也将排队等待加载。你可以在这里阅读。

https://angular.io/guide/router#preloading-background-loading-of-feature-areas

从AWS s3存储桶提供服务 - 您可以使用Angular CLI创建一个角度应用程序,然后使用&#34; ng build --prod&#34;构建dist文件,并将它们放入存储桶中。然后,每当调用索引文件时,它将使用延迟加载来引导Angular 4+应用程序的其余部分。

可以在此处找到入门指南。

https://angular.io/guide/quickstart