2013-04-30 37 views
0

如果你看看這個小提琴http://jsfiddle.net/waylon999/peR9P/3/你會看到我想要做的。我正在嘗試使用$ compile來替換另一個模板的模板。

我希望:

scope.compiledVal = $compile(scope.value)(scope); 

編譯的

"<div>{{ name }}</div>" 

的內容與在與範圍通過綁定的名稱,然後更換compiledVal在

<div>{{ compiledVal }}</div> 

與編譯的模板。這不是正在發生,雖然,輸出僅僅是

{{ compiledVal }} 

,如果我打開的jsfiddle的控制檯我看到的錯誤: 類型錯誤:轉換圓形結構,以JSON

,請問有什麼明顯的,我做這裏錯了嗎?

謝謝!

+0

簡短回答:這不是解決問題的「角度」方法。較長的回答:您在digest循環內調用'$ compile',這會導致循環,這非常複雜。最好閱讀角度摘要循環http://docs.angularjs.org/api/ng.$ro​​otScope.Scope#$digest。要動態地切換模板內容,你應該使用'ng-switch'甚至'ng-include' – 2013-04-30 02:46:13

回答

0

所以在回答我的問題,它看起來像我可以用

var tmp = $compile(scope.value)(scope); 
element.append(tmp); 

更新小提琴http://jsfiddle.net/waylon999/peR9P/3/

但是在Alex Osborn的評論之後需要重新評估...