Angular 2 在 Phonegap 中无法工作(使用纯 JavaScript)

4

我用纯JavaScript在Angular 2中构建了一个网站,在浏览器中一切正常,但是当我尝试构建PhoneGap应用程序或在PhoneGap移动应用程序中使用它时,它不起作用。

在index.html中,我有:

<body>
        <app>Loading app...</app>



        <!-- 1. Load libraries -->
        <script src="libs/angular/2.0.0-beta.3/angular2-polyfills.js"></script>
        <script src="libs/angular/2.0.0-beta.3/Rx.umd.js"></script>
        <script src="libs/angular/2.0.0-beta.3/angular2-all.umd.js"></script>


        <!-- 2. Load our 'modules' -->
        <script src='app/services.build.js'></script>        <!-- All our services, as server comunication -->
        <script src='app/components.build.js'></script>      <!-- All the components -->
        <script src='app/app.component.js'></script>            <!-- App component, main one -->
        <script src='app/main.js'></script>                     <!-- Main -->

        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript">
            phonegapApp.initialize();
        </script>
    </body>

在main.js中我有以下内容:
var phonegapApp = {
    initialize: function() {
        this.bindEvents();
    },
    bindEvents: function() {
        document.addEventListener('deviceready', this.onDeviceReady, false);
    },
    onDeviceReady: function() {
        ng.platform.browser.bootstrap(AppComponent,[
            ng.router.ROUTER_PROVIDERS,
            new ng.core.Provider(ng.router.LocationStrategy, {useClass: ng.router.HashLocationStrategy})
        ]);
    }
};

当设备准备好时,我会包含 ng.platform.browser.bootstrap。(也尝试过使用 document.addEventListener('DOMContentLoaded', function() {...} 但结果相同。)
我只能看到“加载中...”,所以 <app>Loading...</app> 没有被 Angular 解释。
你有什么建议可以让它正常工作吗?谢谢。

3
我认为你需要在这里添加 es-5-shim 的参考文献,以便在 PhoneGap 上支持它。 - Pankaj Parkar
你检查了onDeviceReady方法是否被调用了吗? - Thierry Templier
1
@PankajParkar 谢谢你的建议。添加es6-shim.min.js确实起作用了。 - Daniel Dudas
1个回答

3
你需要添加shims才能在phonegap上运行。这可以是es6-shim.js/es5-shim.js之一。这样可能会解决你的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接