角度和正确的方式来加载网页

问题描述:

一直试图找出这一个。 所以有一个网页,我想要加载另一个网页(或更具体地说,从另一个网页的页面)到一个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上引发大量命中的术语:)

+0

小提琴或jsBin会帮助这里。什么错误被抛出(如果有的话)?你看过ng-bind-html-unsafe? Angular注意直接插入到DOM中的内容,因此可能与它有关。 – ccnokes 2015-02-11 23:07:42

您不能仅仅使用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并返回。 希望它有帮助:)