如何在角度js控制器中使用window.onload?

时间:2016-12-02 14:39:01

标签: angularjs

如何在控制器中使用window.onload功能。

 window.onload= function() { 
    console.log("Hi Page loaded")
   };

控制器不适用于整页。 我想在控制器加载至少后执行一个函数。

3 个答案:

答案 0 :(得分:5)

您可以使用 ng-init 并使用相同的指令调用必要的功能

var app = angular.module('DemoApp', [])
app.controller('akuaController', function($scope) {
  $scope.load = function() {
    alert("Window is loaded");
  }
});
<!DOCTYPE html>
<html>

<head>
  <script data-require="angular.js@1.4.7" data-semver="1.4.7" src="https://code.angularjs.org/1.4.7/angular.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/angular-filter/0.4.7/angular-filter.js"></script>
  <link rel="stylesheet" href="style.css" />
  <script src="script.js"></script>
</head>

<body ng-app="DemoApp" ng-controller="akuaController">
  <div ng-init="load()">
  </div>
</body>

</html>

答案 1 :(得分:1)

Angular $window

更改示例

您的控制器

angular.module('windowExample', [])
    .controller('ExampleController', ['$scope', '$window', function($scope, $window) {
      $scope.greeting = 'Hello, World!';
      $scope.doGreeting = function(greeting) {

        // This would be a starting point
        $window.onload(greeting);
      };
    }]);

您的加价

<div ng-controller="ExampleController" ng-init="ExampleController.doGreeting()">
</div>

答案 2 :(得分:1)

//inside your controller

$scope.$on('$viewContentLoaded', function() {

    // write here

    // either methods or variables 

});