ngInclude 在 Android 的 PhoneGap 构建中失败
Posted
技术标签:
【中文标题】ngInclude 在 Android 的 PhoneGap 构建中失败【英文标题】:ngInclude fails in PhoneGap build for Android 【发布时间】:2015-08-11 19:23:02 【问题描述】:我正在使用 Angular 和 PhoneGap Build,我遇到了一个问题,该问题仅在应用由 PGB 构建并侧加载到我的 android 手机上时才会出现。
它在使用模拟器(在 Visual Studio 2015 中)和通过 PhoneGap 桌面 (phonegap serve
) 时有效。
所有其他 Angular 的东西都可以工作,但无法加载模板。 A
或 B
按预期显示,所以它不是 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
【问题讨论】:
【参考方案1】:将目录 _header
重命名为 header
(并更新模板 url)似乎解决了我的错误……可能是 android webview 或 cordova 怪癖。
【讨论】:
非常感谢!这是一个奇怪的怪癖。 宾果游戏 - 谢谢大家。一定会喜欢那些“未记录的功能”:-) 经过更多测试,这似乎是一个 angularjs 问题,因为在名为_js
的目录中加载标准 js 文件和 XHR 似乎没有出现问题...以上是关于ngInclude 在 Android 的 PhoneGap 构建中失败的主要内容,如果未能解决你的问题,请参考以下文章