Я пытаюсь создать директиву, чтобы я мог выполнять некоторые манипуляции с элементами при загрузке iFrame внутри ng-repeat.
Приведенный ниже CodePen содержит iframe как внутри, так и снаружи ng-повторения. Директива инициализируется без проблем, но события загрузки никогда не запускаются.
var app = angular.module('tester', []);
app.directive('iframeOnload', [function(){
return {
scope: {
callBack: '&iframeOnload'
},
link: function(scope, element, attrs){
alert("Directive Init")
element.on('load', function(){
alert("Load Event Fired")
return scope.callBack();
})
}
}}])
app.controller('MainCtrl', function($scope) {
$scope.tester1 = function (){
alert("Testing 1")
}
$scope.tester2 = function (){
alert("Testing 2")
}
$scope.theTemplate = [
{
Id: 1,
ElementId: 99,
Content: 'Element1',
ElementHeight: 130,
},
{
Id: 2,
ElementId: 98,
Content: 'Element2',
ElementHeight: 320,
},
{
Id: 3,
ElementId: 2,
Content: 'Element3',
ElementHeight: 320,
}];
});
.
<body ng-controller="MainCtrl">
<iframe iframe-onload="tester2()"></iframe>
<ul>
<li ng-repeat="element in theTemplate" id="li_{{element.Id}}" style="position: relative; height:{{element.ElementHeight}}px;">
<iframe iframe-onload="tester1()" scrolling="no" frameborder="0" style="width: 100%; height:{{element.ElementHeight}}px;" id="iframeElement{{element.Id}}"></iframe>
{{element.Content}}
</li>
</ul>
</body>
https://codepen.io/jibber4568/pen/agZxgP
Любые указатели очень ценятся.