2014-02-13 54 views
5

我正在尝试获取一个角度指令以在iframe中起作用。 iframe不是来自外部域,因此需要包含iframe的应用程序样式不应用于iframe中的内容。获取AngularJS指令在iframe中工作

Here is a simple Plunker我需要做的事情。

正如你所看到的那样,带有my-draggable指令的元素在iframe之外,但不在之内。

据我所知,这些被认为具有相同的起源,因此父页面将内容注入iframe的能力。我也尝试为iframe和父页面设置document.domain。相同的结果。

这是一个相同的原产地政策问题还是它与角度范围?

+0

你真的想让Angular在iframe容器和iframe内容之间继续范围继承吗?您将需要单独的应用程序并管理两者之间的通信。请参阅http://stackoverflow.com/questions/19125910/is-it-possible-to-update-angularjs-expressions-inside-of-an-iframe – lib3d

+0

是的,我想继续并分享应用程序和iframe之间的范围。这个想法是,应用程序中所做内容的预览被加载到iframe中。用户可以通过拖动对象来操作预览,并将这些更改传回给应用程序。 – andypants

+0

@andypants你能找到解决办法吗?我正在寻找类似的东西... – jetcom

回答

0

由于iframe是一个单独的DOM,Angular在编译阶段不会下降到iframe中。理论上你可以通过ifrm.innerWindow.document.body$compile,然后把它连接到一个新的范围。但在那个时候,你的iframe已经变得非常笨重,所以为什么不使用它呢?