在iFrame上的angular度,onLoad函数

我有这个iframe使用基本的JavaScript:

<iframe id="upload_iframe" name="upload_iframe" onLoad="uploadDone();"></iframe> 

触发方法uploadDone(); 当iframe的内容已被加载时。

我如何在Angular中做同样的事情? 我想在iframe加载的时候在控制器上调用一个函数,但是到目前为止我还没有看到ng-onload

尝试在控制器中定义function为:

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

评论一个古老的问题。 对于有多个iframe的情况,我需要绑定“onload”事件。 我做了这个方法。

指示

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

调节器

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

DOM

 <div ng-controller="MyController"> <iframe iframe-onload="iframeLoadedCallBack()" src="..."></iframe> </div> 

对于任何结束在这里, ng-onload插件是这个问题的完美解决scheme。 它不会污染全局名称空间,并且不需要创build一次性指令就可以调用简单的作用域函数。