【发布时间】:2014-07-20 19:43:50
【问题描述】:
我拥有一个 AngularJS 应用程序(角度 v1.2.19),我使用 Cordova/PhoneGap 将它转换为 iOS 应用程序。
但是,似乎 resolve 属性(见下文)正在考虑但相关页面在承诺解决之前显示,导致一些难看的闪烁。
在这种情况下闪烁的是:表单只显示字段集和图例+按钮1秒钟,然后显示整个数据(输入等)。
$routeProvider
.when('/page/meetings/123/edit',
{
templateUrl: "edit.html",
controller: "EditCtrl"
resolve: {
activities: ['Activities', function (Activities) {
return Activities.getList().then(function(response) {
return response.data;
});
}]
}
}
}
)
//page is displayed before activities are fully loaded.
Cordova 是否存在关于 resolve 属性的已知错误?还是我应该添加的配置?
它在浏览器中运行良好,但在 iOS 应用程序中,我无法让 Angular 在页面呈现之前解析承诺。
我不明白为什么这只发生在 iOS 应用程序而不是网络浏览器上。
当我删除 resolve 部分时,页面显示时不会闪烁,尽管我没有填充活动。
也许只是性能原因?确实,我在我的 Ipad 3(名为“新 Ipad”)中从一个内容不多的页面测试了路径 /page/meetings/123/edit,并且它显示了承诺解决后的页面 => 很好。
奇怪的是,当我把同一个链接放在一个沉重的页面上..列出几个项目时,目标页面(编辑页面)仍然闪烁,大约1秒钟没有显示任何表单,然后显示整个。
更奇怪的是,无论/page/meetings/123/edit 链接在哪里(重页或轻页),Iphone 4s 上完全相同的代码都会出现闪烁。
相反,iPhone 4s 和 Ipad 上的网页移动版(Safari)是完美的。真的不知道为什么。
【问题讨论】:
标签: javascript ios iphone angularjs cordova