我使用phonegap + AngularJS + Framework7开发了电话应用程序。 我的问题始于框架的交换页面7。
当用户按下链接按钮时,Framework7 动态地将新的 HTML 页面注入(inject) DOM。因此,我必须使用 $compile 和 $apply() 与 Angular 来重新编译注入(inject)的新 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()
是同步的吗?如果我必须使用 Promise 来确保新页面的动画仅在 $compile
和 $apply
完成后开始。
如果您考虑其他解决方案,我会很高兴听到。
最佳答案
我不确定它对你有多大帮助,但也许它可以给你正确的方向。我建议您为您的应用程序使用 ui-router ( https://github.com/angular-ui/ui-router ) 框架。有了它,您将不需要执行此类黑客攻击。
唯一的事情是,将其与 Framework 7 集成可能具有挑战性。尽管有些人成功了 https://github.com/nolimits4web/Framework7/issues/35
关于javascript - 使用 Framework7 和 AngularJS 加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36219524/