2016-12-02 84 views
3

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

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

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

+1

控制器是一个函数。将代码直接放入该函数中,并且在通过角度调用控制器函数时将执行代码。 –

+0

角函数将异步执行。我想在所有其他函数完成执行后运行特定的函数。 –

+0

你真的,真的需要澄清你的问题。首先你谈谈window.onload。然后你说“在我的控制器加载后”。然后你说“在所有其他函数完成执行之后”,而不会说这些其他函数是什么。你想在更高的层面上实现什么?你想要你的控制器做什么? –

回答

3

您可以使用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="[email protected]" 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>

0

更改例如,从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> 
0
//inside your controller 

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

    // write here 

    // either methods or variables 

});