2012-12-04 33 views
0

我有当页面加载角指令不绑定正确

<div id="results"> 
<%= render :partial => results %> 
</div> 

这里所呈现下面的代码是结果的部分内容:

<input type="text" ng-model="Myname" placeholder="Enter a name here"> 
<h1>Hello {{Myname}} </h1> 

绑定发生正确和完美的作品精细。

现在,如果我将jQuery("#results")替换为partial partial,则会替换内容,但不会编译指令,并且绑定也会被破坏。

编译角度指令发生在页面加载的第一次。但是如果我们动态改变HTML内容,那么它就会中断。任何人都可以帮助我理解我在这里做错了什么。

回答

1

你是对的,编译发生在页面加载..或者当角度变化的东西在DOM(通过指令,如ngRepeat,等..)

由于手动更改的DOM,所有你需要做的是在你改变的DOM元素上触发一个$编译。只要做$compile(jQuery("#results"))和绑定应该工作!查看更多here

+0

谢谢蒂亚戈!我尝试** angular.bootstrap(文档); **,这有助于再次引导文档并且它工作。任何想法如何不同于$编译? –

+1

你不应该使用引导程序(它应该用于引导整个角度的应用程序 - 这是ng-app的手册等效,请阅读:http://docs.angularjs.org/api/angular.bootstrap)。 Tiago建议使用$ compile。 – matys84pl

+0

matys84pl是正确的 - $ compile告诉角度去查看特定的DOM元素,而不是重新编译整个文档。所以angular.bootstrap确实有效,但它是不好的代码 - 它很可能会在稍后中断,重置应用程序状态或其他内容。 –