2013-04-30 39 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的评论之后需要重新评估...