在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一次性指令就可以调用简单的作用域函数。