我使用 phonegap + AngularJS + Framework7 开发了手机应用程序。我的问题从 framework7 的交换页面开始。
当用户按下链接按钮时,Framework7 会动态地向 DOM 注入新的 HTML 页面。因此,我必须使用带有角度的 $compile 和 $apply() 来重新编译注入的新 html 部分。
但是在加载和编译的同时打开一个窗口动画是步履蹒跚的。我的编译代码是:
//listiner for new page injection to DOM.
$$(document).on('pageInit', function (e) {
//on page init , compile the new DOM ijected.
$compile(angular.element(document.getElementsByClassName(e.detail.page.container.className)).contents())($scope);
$scope.$apply();
});
还有一个名为“beforeAnimation”的事件。我想可能在动画之前编译所有内容,同时向用户显示加载微调器,当页面准备好时,我想启动动画并向他展示页面。但我不确定如何实施这个解决方案,$compile
同步$apply()
?如果我必须使用承诺来确保新页面的动画只会在完成$compile
之后开始$apply
。
如果您考虑另一种解决方案,我将很高兴听到。