角度和正确的方式来加载网页
问题描述:
一直试图找出这一个。 所以有一个网页,我想要加载另一个网页(或更具体地说,从另一个网页的页面)到一个div。它基本上是我想要显示的一个新的代码。角度和正确的方式来加载网页
我的问题是,实际地址是存储在mongodb,我可以retreieve一切正常。比方说,这是http://www.google.com
这是店Webcont.url(有一个Webcont.name以及其中包含一个简短的名称为每个页面) 我本来以为我能做到沿线的东西的
<div ng-include="Webcont.url"></div>
//or
<object data="Webcont.url"></object>
//or even
<object data="{{Webcont.url}}></object>
或任何其他模式,但我不能为我的生活找到办法做到这一点。搜索条件是网址,包含,加载,对象和数据都无济于事。在google上引发大量命中的术语:)
答
您不能仅仅使用ng-include
加载来自其他域的内容,因为这是安全风险。您可以使用$sce.trustAsResourceUrl(value)解决该问题。 $sce service(严格上下文转义)通常用于安全加载动态HTML。
答
好的,原来是比较直接的,所以我最终使用了ng-bind-html,这足够奇怪地需要嵌入它的语句。不确定我已经理解了ng-bind-html。
您需要两位,一个生成HTML类型标记的部分。因此,在您的控制器中添加
var culine = '<iframe src="' + fside.surl + '" height="700" width="700"></iframe>';
console.log(culine);
return $sce.trustAsHtml(culine);
基本上,fside.surl可以是任何包含完整网址的字符串。第二件事是$ sce.trustAsHtml,它基本上允许你从其他域加载。 的HTML代码如下所示:
<div id="front-page" ng-bind-html="showpane('front')"></div>
在这种情况下,我使用了一个名为showpane功能来搜索网页的列为前的页面,然后检查URL并返回。 希望它有帮助:)
小提琴或jsBin会帮助这里。什么错误被抛出(如果有的话)?你看过ng-bind-html-unsafe? Angular注意直接插入到DOM中的内容,因此可能与它有关。 – ccnokes 2015-02-11 23:07:42