在一个iFrame棱角分明,功能的onLoad(Angular, onLoad function o

2019-08-20 07:44发布

我有这样的iframe基本JavaScript的工作:

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

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

我该怎么做同样的事情在角? 我想打电话给控制器时的iframe负载上的功能,但我还没有看到一个ng-onload为止。

Answer 1:

尝试控制器内定义为函数:

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


Answer 2:

在谈到一岁多的问题。 对于有超过1个I帧的情况下,我需要绑定到“的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
    }
}]);

判决

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


Answer 3:

对于有人在这里结束了,在NG-的onload插件是对这一问题的完美解决方案。 它不污染全局命名空间,并且不需要您创建一次性的指令时,你想要的是调用一个简单的范围功能。



文章来源: Angular, onLoad function on an iFrame