错误:$ interpolate:noconcat多个表达式

时间:2016-04-27 00:30:24

标签: angularjs templates iframe

是否可以在API生成的ul列表中添加带iframe参数的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>时,结果可见,但何时iframe ng-src - 失败并出现此错误

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

有任何想法或建议如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我修复了

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

然后进入ng.js

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