2016-04-27 8 views
0

APIで生成されたulリストに、srcパラメータを指定してiframeでリンクを追加することはできますか?

本当にURLが集中しています。 APIを使ってデータを配信しているので、これをiframeのリストとして表示したいと考えています。

私はこのコードテンプレートを持っている:

(...) 
var getTemplate = function(contentType) { 
var template = '<ul>' 
      +'<li ng-repeat="li in item.list" class="[[li.class]]">' 
      +'<iframe width="100%" height="300"' 
      +'ng-src="https://myserver.com/?id=[[li.mydata]]"' 
      +'</iframe>' 
      +'</li></ul>'; 
     return template; 
    }; 
(...) 

補間は[[]]

SCE、セキュアに設定されているが

.config(function($sceDelegateProvider) { 
    $sceDelegateProvider.resourceUrlWhitelist([ 
    'self', 
    'https://myserver.com/**', 
    ]) 
}) 

テンプレートに追加する場合<h4>[[li.mydata]]</h4>結果が表示されますが、信頼されていますto iframe ng-src - このエラーで失敗する

https://docs.angularjs.org/error/$interpolate/noconcat?p0=

これを解決する方法はありますか?

答えて

1

私はng.js

.filter('EmbedUrl', function ($sce) { 
    return function(uId) { 
    return $sce.trustAsResourceUrl('https://example.com/?id=' + uId ); 
    }; 
に続いて

(...) 
      +'<iframe width="100%" height="300"' 
      +'ng-src="[[li.mydata | EmbedUrl ]]"' 
(...) 

との問題を修正