Я разработал телефонное приложение, используя phonegap + AngularJS + Framework7. Моя проблема начинается со страниц подкачки framework7.
Framework7 динамически вводит новую HTML-страницу в DOM, когда пользователь нажимает кнопку ссылки. следовательно, я должен использовать $compile и $apply() с angular, чтобы повторно скомпилировать введенную новую часть 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
будут выполнены.
если вы думаете о другом решении, я буду рад это услышать.