我有这样的iframe基本JavaScript的工作:
<iframe id="upload_iframe" name="upload_iframe" onLoad="uploadDone();"></iframe>
这触发方法uploadDone();
当iframe的内容已被加载。
我该怎么做同样的事情在角? 我想打电话给控制器时的iframe负载上的功能,但我还没有看到一个ng-onload
为止。
我有这样的iframe基本JavaScript的工作:
<iframe id="upload_iframe" name="upload_iframe" onLoad="uploadDone();"></iframe>
这触发方法uploadDone();
当iframe的内容已被加载。
我该怎么做同样的事情在角? 我想打电话给控制器时的iframe负载上的功能,但我还没有看到一个ng-onload
为止。
尝试控制器内定义为函数:
window.uploadDone=function(){
/* have access to $scope here*/
}
在谈到一岁多的问题。 对于有超过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>
对于有人在这里结束了,在NG-的onload插件是对这一问题的完美解决方案。 它不污染全局命名空间,并且不需要您创建一次性的指令时,你想要的是调用一个简单的范围功能。