angularjs中實現window.onload()與$(document).ready()的方法

來源:互聯網
上載者:User

習慣了window.onload(),$(document).ready(),現在換成別的了,還真有點不習慣了。下面說一下常用的4種情況。

1,html中直接寫

 代碼如下 複製代碼


    <script src="lib/angular/angular.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
        angular.element(window).bind('load', function() { 
            alert('1'); 
        }); 
        alert('2'); 
    </script> 

不建議,直接在模板裡面,寫js代碼。

2,在controller裡面利用$on或者$watch

 代碼如下 複製代碼


    bookControllers.controller('bookctrl_test', ['$scope', '$routeParams', 
        function($scope, $routeParams) { 
            $scope.$on('$viewContentLoaded', function() { 
                alert('1'); 
            }); 
            alert('2'); 
    }]); 

 

    bookControllers.controller('bookctrl_test1', ['$scope', '$routeParams', 
        function($scope, $routeParams) { 
            $scope.$watch('$viewContentLoaded', function() { 
                alert('1'); 
            }); 
            alert('2'); 
    }]); 

3,利用data-ng-init

 代碼如下 複製代碼


    <div ng-controller="test"> 
         <div data-ng-init="load()" ></div> 
    </div> 

注意:data-ng-init在controller裡面才會啟作用

 代碼如下 複製代碼


    bookControllers.controller('testInit', ['$scope', '$routeParams', 
        function($scope, $routeParams) { 
            $scope.load = function() { 
                 alert('code here'); 
            } 
    }]); 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.