我正在使用 Angular 和 PhoneGap Build,并且遇到了一个问题,该问题仅当应用程序由 PGB 构建并侧面加载到我的 Android 手机上时才会出现。
它在使用模拟器(在 Visual Studio 2015 中)和通过 PhoneGap Desktop (phonegapserve
) 时有效。
所有其他 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
最佳答案
将目录_header
重命名为header
(并更新模板网址)似乎为我修复了错误......可能是android webview或cordova怪癖。
关于angularjs - Android 的 PhoneGap 构建中 ngInclude 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31950243/