angular中如何监控页面加载完毕

本文探讨了在Angular中监控页面加载完毕的各种方法,包括控制器中的on或watch、data-ng-init、Angular自身的angular.element(window)、jQuery方法以及$timeout。尽管$timeout可实现DOM加载后的操作,但并不推荐用于样式变化,建议使用ng-class指令。文章提供了示例代码下载链接和相关文章参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,网上一些不起作用的方法

1,在controller里面利用 on watch
$scope.$on('$viewContentLoaded', function() {  
    alert('1');  
});  
$scope.$watch('$viewContentLoaded', function() {  
    alert('1');  
});  
2,利用data-ng-init
<div ng-controller="test">  
     <div data-ng-init="load()" ></div>  
</div> 
 $scope.load = function() {  
      alert('code here');  
 }  

二,网上起作用的方法(只在初始化界面起作用)

此方法调用的angular的方法,angular.element(window)并没有转变为jquery对象,这可能是个特例,不引入jquery就起作用!

angular.element(window).bind('load', function() {  
    alert('1');  
});

三,jquery的方法(需要引入jquery)(只在初始化界面起作用)

angular.element(document).ready(function () {
    alert('1'); 
});

四,$timeout的方法(在方法中急用,但不建议使用)

在方法中$timeout中内容会最后执行,相当于dom加载完再执行,
但多数情况要监控dom加载完是为了变化样式,推荐使用angular自己的指令ng-class去变样式

$scope.setStyle = function(){
    var a = $timeout(function(){
        var radio = angular.element('.item-radio')[2];
        angular.element(radio).addClass("select"); 
    });

    $scope.clientSideList = tempData; 
  }

示例代码下载地址:http://download.youkuaiyun.com/detail/superjunjin/9732862
可以参照上篇理解:http://blog.youkuaiyun.com/superjunjin/article/details/53353426

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值