我在页面上有2个div。当用户点击button1
时,iframe
已加载到div1
,button2
和div2
也是如此。 iframes
通过ajax加载,并通过$sce.trustAsHtml
获得信任。 html本身看起来像这样:
<div ng-bind-html="video.trustediframe"></div>
这将是结果:
<div ng-bind-html="video.trustediframe"><iframe id="iframe1"></iframe></div>
一切正常,我可以看到视频,但是当用户点击button2
时,我想要关闭第一个视频的Feed并移除iframe
,以便我angular.element('#iframe1').remove()
。现在,一旦用户再次点击button1
,iframe
将不再加载,请再次执行DOM,尽管div
仍然存在ng-bind-html="video.trustediframe"
。
我尝试重新分配video.trustediframe
变量(函数为$sce.trustAsHtml
返回一个函数),然后执行$scope.$apply
,但这无助于重新插入iframe
}。我可以使用其他方法来解决这种问题吗?
答案 0 :(得分:0)
通过跟踪当前活跃的玩家,我能够获得所需的行为。
因此,使用<div ng-if="video.isPlaying" ng-bind-html="video.trustediframe"> </div>
我每页只有一个活动播放器,每当用户在不同标签之间切换时,前一个播放器都会从dom中删除。