我正在使用AngularJS。
其中一项(技术)要求是从服务器获取“已启用”的HTML内容,以响应点击事件,并通过JavaScript将其注入<div ng-app>
。
问题是新注入的HTML没有连线,因为只有在第一次加载页面时,Angular才会通过编译和链接阶段。
有没有办法手动触发它们?
我是以错误的方式处理这个问题吗?有没有更惯用的方法来完成我所描述的内容?
由于
答案 0 :(得分:2)
有多种方法可以将动态内容注入AngularJS中的视图。注入动态内容的方法之一是使用ng-include
指令。它可以从一个端点获取视图。
您可以将其与ng-if
结合使用,以实现点击时的加载视图。例如:
<span ng-if="clicked">
<div ng-include='pathToTheHtml'></div>
</span>
首先clicked
变量为false,点击按钮将其设置为true,这将触发ng-include
获取内容并将其注入html。
如果你想要更好的控制,那么你需要使用$ compile服务。需要注入DOM的html需要使用$ compile服务进行编译并链接到作用域。这可以在指令中完成。
element.append($compile(htmlFragment)(scope)
)
答案 1 :(得分:1)