[英]Executing a function once the page is fully loaded in AngularJS
我想在頁面完全加載后立即執行此功能。
vm.pointInvoice = () => {
if ($stateParams.property == "INVOICE") {
vm.invoiceEdit($stateParams.checkin)
vm.invoiceFocus = true;
vm.receiptFocus = false;
}
}
如果我把這個功能作為一個按鈕(只是為了測試它),一切都很完美
<button ng-click="vm.pointInvoice()">OPEN AND POINT TO INVOICE</button>
但是,無論我做什么 - 我都無法自動執行此功能(當頁面完全加載且所有數據/元素都可用時)。
幸運的是Stack Overflow有很多關於頁面滿載的帖子,所以我試了很多但是沒有一個可以工作,它們都是在頁面仍然是空白的時候啟動它。
這些是我嘗試過的一些:
$scope.$on('$viewContentLoaded', function(){
debugger;
});
angular.element(document).ready(function () {
debugger;
});
$scope.$on('$stateChangeSuccess', function () {
debugger;
});
所以我唯一的想法是做一些丑陋的setTimeout(function(){ vm.pointInvoice() }, 3000);
黑客,但對我來說有點像放棄:-D
當頁面完全加載時,必須有一些方法來啟動一個功能....
您可能想要使用ng-init
指令:
<div ng-init="init()">...</div>
定義此功能是您的控制器:
$scope.init = function() {
alert("Page is fully loaded!);
}
無論如何,您可以直接從控制器調用此功能。 一旦應用程序和控制器加載,它將被調用。
你嘗試過使用正確的angular
事件嗎?
角度<1.6.X
angular.element(document).ready(function () {
alert('page loading finshed');
});
角度> = 1.6.X
angular.element(function () {
alert('page loading finshed');
});
你有沒有嘗試過Angular JS之外的東西?
$(document).ready(function(){ /*code*/ }); //with jQuery
document.addEventListener('DOMContentLoaded', function(){ /*code*/ });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.