【问题标题】:Show iframes in angular-xeditable editables在 angular-xeditable 可编辑文件中显示 iframe
【发布时间】:2014-11-26 11:09:40
【问题描述】:

我正在使用 angular-xeditable,这是我的可编辑元素:

<div class="like-pre" editable-textarea="question.answer" e-rows="10" e-cols="40" onbeforesave="validateFaq($data, 'answer')" ng-bind-html="question.answer"></div>

在控制器中,我使用 $sce.trustAsHtml 使 question.answer 显示为常规 HTML 而不是原始文本。 HTML 可以包含 iframe(用于 youtube 视频)或 img 元素。 有效。

问题是,在我通过可编辑元素更改任何 issue.answer 后,IFRAME 元素完全消失。 IMG 元素在编辑后仍然正确显示。

有人知道怎么回事吗?

【问题讨论】:

    标签: javascript html angularjs iframe x-editable


    【解决方案1】:

    找到解决方案。问题是 xeditable 只更新模型数据。模型更新后,它通过 angulars 绑定更新可编辑的 div 元素。未显示 iframe,因为新模型内容未签名为受信任。

    我曾尝试在 onaftersave 中通过 $sce.trustAsHtml 传递 question.answer 变量,但它没有做任何事情。那是因为 trustAsHtml 没有改变任何东西,我想它只是将其标记为受信任(不知道它在内部是如何工作的)。

    解决方案是像这样添加空白空间:

    $sce.trustAsHtml(newQuestion.answer + ' ');
    

    因此 angular 发现模型已更改并重新加载 editabel div 并使用新的 - 信任为 html - 内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-16
      • 2014-11-17
      • 1970-01-01
      • 2018-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多