2016-03-25 8 views
0

からそのSRCをロードするときに、私は(下の私のコントローラを参照)私が使っているのiframeのソースとの.jsonファイルをロードするためにAngularJS 1を使用しています表示されない:AngularJS - IFRAMEはJSONファイル

myApp.controller('iFrames', ['$scope', '$http', function($scope, $http){ 
console.log("ENTERING LOADING IFRAME"); 
$http.post('../json/iframes.json').success(function(data){ 
console.log("LOADING SUCCESSFULL"); 
$scope.iframes = data; 
}); 
console.log("LEAVING LOADING IFRAME"); 
}]); 

問題は、jsonファイルが正しく読み込まれていることを知って、iframeがページに表示されていないことです。

jsonファイルのURLがすべてhttpsであることを知る必要があります。私はこれがここで問題を引き起こしていると思います。 HTMLで

は私が持っている:私はエラーを取得しています

<div class="col-lg-4 col-md-4 col-sm-6 col-xs-6" ng-controller="iFrames"> 
       <div class="panel"> 
        <div class="panel-body"> 
        <h3 class="text-center" style="color:white"><div id="changeStat"><span data-i18n="mainTranslation.user.house.consommation"></span></div></h3> 
        <div id="statRealTime" ng-repeat="iframe in iframes" > 
         <iframe ng-src="{{(iframe.src)}}" width="420" height="75" frameborder="0"></iframe> 
        </div> 

        <div id="statHistory" style="display: none" ng-repeat="iframe in iframes" > 
         <iframe ng-src="{{(iframe.srcHist)}}" width="420" height="75" frameborder="0"></iframe> 

        </div> 
        </div> 
       </div> 
       </div> 

URLは何とか安全でないということです。

"Error: [$interpolate:interr] http://errors.angularjs.org/1.5.0/$interpolate/interr?p0=%7B%7B(iframe.srcHist)%7D%7D&p1=Error%3A%20%5B%24sce%3Ainsecurl%5D%20http%3A%2F%2Ferrors.angularjs.org%2F1.5.0%2F%24sce%2Finsecurl%3Fp0%3Dhttps%253A%252F%252F....... 

私のファイルはローカルにありますが、私は離れたサーバーに置いてみましたが、それでも同じ問題です。生産保管

myApp.controller('iFrames', ['$scope', '$http', '$sce', function($scope, $http, $sce){ 
    console.log("ENTERING LOADING IFRAME"); 
     $http.post('../json/iframes.json').success(function(data){ 
     console.log("LOADING SUCCESSFULL"); 
     $scope.iframes = data; 
     for(var i = 0; i < $scope.iframes.length; i++){ 
      $scope.iframes[i].srcHist = $sce.trustAsUrl($scope.iframes[i].srcHist) 
     } 

    }); 
    console.log("LEAVING LOADING IFRAME"); 
}]); 
+0

エラーが発生したリンクをクリックしてください。 ation。または、より詳細なエラーとスタックトレース出力のために、角度の完全な開発版を使用してください。 – charlietfl

答えて

1

@Websirnikの答え、それのほとんどは右だったが、代わりに$sce.trustAsUrlを使用して(:

私はいくつかの助けをいただければ幸いです...

1

あなたは$sceを使用する必要があります同じエラー)、私は$sce.trustAsResourceUrlを使って試してみましたが、動作します:

myApp.controller('iFrames', ['$scope', '$http', '$sce', function($scope, $http, $sce){ 
console.log("ENTERING LOADING IFRAME"); 
    $http.post('../json/iframes.json').success(function(data){ 
    console.log("LOADING SUCCESSFULL"); 
    $scope.iframes = data; 
    for(var i = 0; i < $scope.iframes.length; i++){ 
     $scope.iframes[i].srcHist = $sce.trustAsResourceUrl($scope.iframes[i].srcHist) 
    } 

}); 
console.log("LEAVING LOADING IFRAME"); 
}]); 
+0

ありがとうございます!あなたは私の日を救った:) – Lotus91

関連する問題