Javascript 如何强制angular手动重新运行其绑定?

Javascript 如何强制angular手动重新运行其绑定?,javascript,ruby-on-rails,angularjs,Javascript,Ruby On Rails,Angularjs,我正在尝试将angular集成到一个旧的现有web应用程序中。我有几个地方,页面的大部分通过ajax请求从rails部分重新呈现 一旦页面的一部分以这种方式重新呈现,任何现有的角度绑定(例如:ng click)都将丢失,按钮将不再工作。有没有办法手动告诉angular重新检查绑定属性?如果您正在加载一些HTML并且需要angular来处理它,那么您需要在angular的HTML代码上运行$compile来解析指令,并且需要将范围附加到返回的链接函数。显示一些代码。如果您只是获取新数据,您可以使用

我正在尝试将angular集成到一个旧的现有web应用程序中。我有几个地方,页面的大部分通过ajax请求从rails部分重新呈现


一旦页面的一部分以这种方式重新呈现,任何现有的角度绑定(例如:ng click)都将丢失,按钮将不再工作。有没有办法手动告诉angular重新检查绑定属性?

如果您正在加载一些HTML并且需要angular来处理它,那么您需要在angular的HTML代码上运行$compile来解析指令,并且需要将范围附加到返回的链接函数。显示一些代码。如果您只是获取新数据,您可以使用$http,它将自动为您调用$digest,或者您可以从其他回调调用$digest,通知angular它需要更新显示。

我认为这可能有效。然而,在我的例子中,rails呈现完整的部分并通过AJAX调用返回它们。有没有一种方法可以截获返回的html并用Angular编译它?从体系结构上讲,您应该有一个指令,该指令包装执行html请求的代码,然后在html中的任何位置使用您的指令插入从服务器端返回的数据。如果您将其写入一个指令,您可以重新使用该指令从各种源加载数据。。。。想一想,你也许可以用ng include做点什么来让它发挥作用。如果您使用ng include,它将获取一些HTML并编译它,但是控制范围可能会有一些问题。