【问题标题】:iframe src function call is continuously getting triggerediframe src 函数调用不断被触发
【发布时间】:2016-07-05 10:19:07
【问题描述】:

我遇到了 iframe src 的问题,我正在调用一个绑定我返回值的函数

这里是代码

<div  class="collapse" class="col-xs-6" ng-if="setFrame">
<iframe width="100%" height="650px" ng-src="{{getIframeSrc()}}" ></iframe>

控制器代码就像

angular.module('hrPortalApp')
.controller('topicsCtrl', function($scope, $state, $stateParams, getCandidateInterviewListService, searchBoxService, iterateArray) 
    angular.forEach($stateParams.candidateDetails, function(value, key) {
        if (value.name == $stateParams.name) {
            $scope.file = value.filepath;
        }
        $scope.setFrame=true;
    });
    $scope.getIframeSrc = function() {
        var filepath='http://localhost:4000/' + $scope.file;
        return filepath
    };

但这里的函数 getIframeSrc 像循环一样被连续触发

我不明白这里发生了什么

任何帮助将不胜感激。

【问题讨论】:

  • 在您的$scope.getIframeSrc 函数中为您的 filepath 执行 console.log 并检查路径
  • 我得到了正确的路径@MohanGopi
  • console.log( $scope.getIframeSrc()); 试试这个并检查

标签: javascript angularjs iframe


【解决方案1】:

它被循环调用,因为引擎一直在检查更改。 每次你的函数运行时,都会发生一些变化,所以它变成了一个“循环”。

JSFiddle

HTML

<div  class="collapse" class="col-xs-6" ng-if="setFrame">
<iframe width="100%" height="650px" ng-src="{{iframeSrc}}" ></iframe>

JS

$scope.iframeSrc = 'http://localhost:4000/' + $scope.file;

【讨论】:

  • 但在这里我可以显示 iframe 内容@KRONWALLED
  • 我可以在 inpect 元素中正确看到 src 但无法加载文件
  • 我的错。我认为您必须注入 $sce 并将其设置为 $scope.iframeSrc = $sce.trustAsResourceUrl('http://localhost:4000/' + $scope.file);
  • 还是一样的:(
  • 为你添加了一个 JSFiddle。按预期工作。如果它不起作用:您的网络服务器上是否有相同的来源策略或配置的东西?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-24
  • 2019-01-29
  • 1970-01-01
  • 2020-05-31
  • 2021-08-30
  • 1970-01-01
相关资源
最近更新 更多