【问题标题】:ngInclude fails in PhoneGap build for AndroidngInclude 在 Android 的 PhoneGap 构建中失败
【发布时间】:2015-08-11 19:23:02
【问题描述】:

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

它在使用模拟器(在 Visual Studio 2015 中)和通过 PhoneGap 桌面 (phonegap serve) 时有效。

所有其他 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

【问题讨论】:

    标签: angularjs phonegap-build


    【解决方案1】:

    将目录 _header 重命名为 header(并更新模板 url)似乎解决了我的错误……可能是 android webview 或 cordova 怪癖。

    【讨论】:

    • 非常感谢!这是一个奇怪的怪癖。
    • 宾果游戏 - 谢谢大家。一定会喜欢那些“未记录的功能”:-)
    • 经过更多测试,这似乎是一个 angularjs 问题,因为在名为 _js 的目录中加载标准 js 文件和 XHR 似乎没有出现问题...
    猜你喜欢
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    相关资源
    最近更新 更多