Angular 在应用程序启动中不起作用
Posted
技术标签:
【中文标题】Angular 在应用程序启动中不起作用【英文标题】:Angular not working in app launch 【发布时间】:2018-03-22 06:28:40 【问题描述】:我使用 Angularjs 在 Cordova 应用程序中工作,并且在 Chrome 和其他浏览器中看起来一切正常。但是如果我尝试将 apk 安装到 android,Angularjs 不会在启动时执行 index.html。
但是,这是最奇怪的:如果我更改其他页面并返回 index.html,一切看起来都很好!如果我关闭应用程序并重新启动,一切都会恢复正常。有时,只是在几次之后,它会重复,只是在 index.html 中。
启动时我的 index.html:
enter image description here
正如我所说,这些页面在大多数情况下都可以正常工作:
enter image description here
我正在使用 Android 7.1.1 / Cordova 7.0.1 / Angular 1.6.4
index.html:('ng-owl-carousel' 中的每个 'ng-init' 都会发出一个 $http 请求)
<!DOCTYPE html>
<html ng-app="baseApp">
<head>
<link rel="stylesheet" href="css/uikit.css" />
<link rel="stylesheet" href="css/header.css" />
<link rel="stylesheet" href="css/custom.css" />
<link rel="stylesheet" href="css/owl.carousel.min.css">
<link rel="stylesheet" href="css/animate.css" />
<script src="js/jquery.js"></script>
<script src="js/uikit.min.js"></script>
<script src="js/owl.carousel.js"></script>
<script src="js/angular.min.js"></script>
<script src="js/angular-owl-carousel-2.js"></script>
<script src="js/index.js"></script>
<script src="js/controller-home.js"></script>
<script src="js/controller-list.js"></script>
<script src="js/controller-rede.js"></script>
<script src="js/controller-config.js"></script>
</head>
<body ng-controller="carousel" ng-cloak>
<header ng-include="'templates/header-search.html'"></header>
<section>
<ng-owl-carousel class="owl-theme" owl-items="items" owl-properties="properties" owl-ready="ready($api)">
<div ng-controller="home">
<div ng-include="'templates/home.html'" ng-show="owl_page == 0" ng-init="init_home();"></div>
</div>
<div ng-controller="listas">
<div ng-include="'templates/listas.html'" ng-show="owl_page == 1" ng-init="init_listas();"></div>
</div>
<div ng-controller="rede">
<div ng-include="'templates/rede.html'" ng-show="owl_page == 2" ng-init="generalSearchFilter('notify');"></div>
</div>
<div ng-controller="config">
<div ng-include="'templates/config.html'" ng-show="owl_page == 3" ng-init="init_config();"></div>
</div>
</ng-owl-carousel>
</section>
<footer id="footer" ng-include="'templates/footer.html'"></footer>
<script src="cordova.js"></script>
</body>
</html>
【问题讨论】:
你能分享你的 index.html 吗? HMTL 共享 Keerthi。谢谢! 您可以尝试将 Angular 脚本添加为 html 中的第一个脚本标签并尝试吗? 【参考方案1】:几天后,我决定更改所有 index.html 并更改我的代码以使用 $routeProvider 而不是 ng-include,我还将初始函数替换为 'angular.element(document).ready' + $timeout .好结局! :)
【讨论】:
以上是关于Angular 在应用程序启动中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Angular 11 路由在 AWS S3 和 Cloudfront 中不起作用