Angolare, funzione onLoad su un iFrame

Ho questo iframe che funziona con JavaScript di base:

 

Che triggers il metodo uploadDone(); quando il contenuto dell’iframe è stato caricato.

Come faccio la stessa cosa in Angular ?. Voglio chiamare una funzione sul controller quando viene caricato l’iframe, ma finora non ho visto un ng-onload .

prova a definire la funzione all’interno del controller come:

 window.uploadDone=function(){ /* have access to $scope here*/ } 

Commentando una domanda di un anno. Per i casi in cui sono presenti più di 1 iframe, è necessario associare eventi “onload” a. Ho fatto questo approccio.

Direttiva

 APP.directive('iframeOnload', [function(){ return { scope: { callBack: '&iframeOnload' }, link: function(scope, element, attrs){ element.on('load', function(){ return scope.callBack(); }) } }}]) 

controllore

 APP.controller('MyController', ['$scope', function($scope){ $scope.iframeLoadedCallBack = function(){ // do stuff } }]); 

DOM

 

Per chiunque finisca qui, il plugin ng-onload è la soluzione perfetta a questo problema. Non inquina lo spazio dei nomi globale e non richiede di creare direttive una tantum quando tutto ciò che si desidera è chiamare una semplice funzione di ambito.