在iFrame上的angular度,onLoad函数

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

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

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

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

  • 为什么人们仍然使用iframe?
  • 重新加载一个IFRAME而不添加历史logging
  • 你如何张贴到一个iframe?
  • YouTube的iframe wmode问题
  • 使用JavaScript滚动iframe?
  • 将值从窗口传递给iframe
  • 根据内容 - JQUERY / Javascript使iframe高度动态化
  • 更改新的Google Recaptcha宽度
  • 3 Solutions collect form web for “在iFrame上的angular度,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一次性指令就可以调用简单的作用域函数。