2014-02-13 53 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已經變得非常笨重,所以爲什麼不使用它呢?