我正在尝试使用Cordova PhoneGap将网络应用移植到移动设备上。除了ngView
指令外,它或多或少地按预期工作。
[老问题]
当我更改页面时,新页面覆盖旧页面,混合其元素。我在deviceReady事件之后使用Angular的异步引导解决了这个问题。
[未解决的问题]
我可以在Xcode上看到在运行时也大量使用内存。在主页,我看到大约90MB的使用。如果我转到用户页面(更重),内存消耗约为200MB。如果我回到主页,内存会增加而不是回到90MB。
我注意到当我打开一个新页面时,它的控制器被多次初始化,产生$digest
循环错误。事实上,当我进入主页时,日志会写' PAGE OPENED !!' 10次
我没有等待setTimeout
或setInterval
。
我想当一个范围被破坏时,它的控制器也会这样做。
这就是我使用ngview的方式:
的index.html
<body ng-cloak class="ng-cloak" style="overflow-y: auto;">
<div ng-view></div>
...
</body>
app.modules.js
angular.module('myApp', [...])
.config(function($routeProvider){
$routeProvider
.when('/home',{
templateUrl: 'app/home.html',
})
.when('/user',{
templateUrl: 'app/user/profile.html',
});
})
home.html的
<div id='home_page' ng-controller="homePageController as ctrl"
ng-style="{'background-image':'url('+{{ctrl.image}}+')'}">
<div>
this is the home page
</div>
</div>
homePageController.js
.controller('homePageController', [function($scope)
{
self.image="/img/img.png";
console.log('PAGE OPENED!!');
this.pageClosed = function()
{ $scope.$destroy(); }
}]);
它在浏览器上运行良好,我无法理解为什么我无法顺利更改应用中的网页。
谢谢