angularjs - Android 的 PhoneGap 构建中 ngInclude 失败

标签 angularjs phonegap-build

我正在使用 Angular 和 PhoneGap Build,并且遇到了一个问题,该问题仅当应用程序由 PGB 构建并侧面加载到我的 Android 手机上时才会出现。

它在使用模拟器(在 Visual Studio 2015 中)和通过 PhoneGap Desktop (phonegapserve) 时有效。

所有其他 Angular 内容都可以工作,但模板无法加载。 AB 按预期显示,因此它不是 ngShow 内容。

我已改用手动引导,但这没有帮助。

大家有什么建议吗?

index.html:

<!DOCTYPE html>
<html>
<head>
...
</head>
<body data-ng-controller="PageController as page">
    <header class="app-header">
        <div data-ng-show="!loggedIn">A<div data-ng-include="'views/_header/pre-login.html'"></div></div>
        <div data-ng-show="loggedIn">B<div data-ng-include="'views/_header/logged-in.html'"></div></div>
    </header>
    <div class="content" data-ng-view>
    </div>
    <footer class="app-footer" data-ng-show="loggedIn">
    </footer>
    <script type="text/javascript" src="cordova.js"></script>
    <script type="text/javascript" src="lib/angular/angular.min.js"></script>
    <script type="text/javascript" src="lib/angular-route/angular-route.min.js"></script>
    <script type="text/javascript" src="lib/angular-resource/angular-resource.min.js"></script>
    <script type="text/javascript" src="js/pg-app.js"></script>
    <script type="text/javascript" src="js/ng-app.js"></script>
    <script type="text/javascript">
        pgApp.initialize();
    </script>
</body>
</html>

pg-app.js:

var pgApp = {
    initialize: function () {
        document.addEventListener('deviceready', this.onDeviceReady, false);
    },
    onDeviceReady: function () {
        angular.bootstrap(document, ['fGApp'], { strictDi: false });
    }
};

ng-app.js:

var fGApp = angular.module('fGApp', ['ngRoute', 'ngResource', 'fGControllers']);

fGApp.config(function ($routeProvider) {
    $routeProvider
        .when('/', {
            controller: 'HomeController',
            templateUrl: 'views/Account/_Account.html'
        })
        .when('/:controller/', {
            caseInsensitiveMatch: true,
            templateUrl: function (path) { return 'views/' + path.controller + '/_' + path.controller + '.html'; }
        })
        .when('/:controller/:view/', {
            caseInsensitiveMatch: true,
            templateUrl: function (path) { return 'views/' + path.controller + '/' + path.view + '.html'; }
        })

        .otherwise({ redirectTo: '/' });
});

fGApp.run(function ($rootScope, $route) {
    $rootScope.loggedIn = false;

    $route.reload();
});

var fGControllers = angular.module('fGControllers', []);

// concat'd separate files follow

最佳答案

将目录_header重命名为header(并更新模板网址)似乎为我修复了错误......可能是android webview或cordova怪癖。

关于angularjs - Android 的 PhoneGap 构建中 ngInclude 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31950243/

相关文章:

javascript - ng-disabled用在按钮中不起作用的原因是什么

javascript - Angularjs动态添加 Controller

angularjs - spring Boot 和 Angular JS : what is the best way to deal with the authentication?

android - Galaxy Note 4的商店中未列出Android移动应用

c# - AngularJS $resource 在 Web Api 中搜索项目的工作示例

python - 具有一对一关系的 SQLAlchemy 聚合

push-notification - 推送通知 : Why use Amazon SNS over Google's GCM/FCM?

android - Cordova - 静态 HTML/JS/CSS 是否可以在可分发的设备特定文件中加密

android - 如何设置 Phonegap Developer 应用程序的 IP 地址

android - PhoneGap 截图插件不适用于 Android?