以角度可编辑的可编辑方式显示iframe

时间:2014-10-01 14:54:59

标签: javascript html angularjs iframe x-editable

我正在使用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元素。 有效。

问题是,在我更改了有问题的内容之后。通过可编辑元素,IFRAME元素完全消失。版本后IMG元素仍然正确显示。

任何人都知道什么是错的?

1 个答案:

答案 0 :(得分:0)

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

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

解决方案是添加如下空格:

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

因此,角度发现模型已被更改,并使用新的 - 受信任的html - 内容重新加载editabel div。