iframe - tpls - uibmodal controller
Angular, funciĆ³n onLoad en un iFrame (3)
Tengo este iframe trabajando con JavaScript básico:
<iframe id="upload_iframe" name="upload_iframe" onLoad="uploadDone();"></iframe>
Lo cual activa el método uploadDone();
cuando el contenido del iframe ha sido cargado.
¿Cómo hago lo mismo en Angular ?. Quiero llamar a una función en el controlador cuando se carga el iframe, pero hasta ahora no he visto ninguna carga ng-onload
.
Comentando una pregunta de un año. Para casos donde hay más de 1 iframes, necesito vincular eventos "onload" a. Hice este acercamiento.
Directiva
APP.directive(''iframeOnload'', [function(){
return {
scope: {
callBack: ''&iframeOnload''
},
link: function(scope, element, attrs){
element.on(''load'', function(){
return scope.callBack();
})
}
}}])
Controlador
APP.controller(''MyController'', [''$scope'', function($scope){
$scope.iframeLoadedCallBack = function(){
// do stuff
}
}]);
DOM
<div ng-controller="MyController">
<iframe iframe-onload="iframeLoadedCallBack()" src="..."></iframe>
</div>
Para cualquiera que termine aquí, el plugin ng-onload es la solución perfecta para este problema. No contamina el espacio de nombres global y no requiere que cree directivas únicas cuando lo único que desea es llamar a una función de alcance simple.
intente definir la función dentro del controlador como:
window.uploadDone=function(){
/* have access to $scope here*/
}