我在stackoverflow上搜索过这个问题太多了,有类似的但没有帮助,几乎尝试了一切。 问题是:
我有一个应用程序,我使用角度js绑定事件,如加载更多(分页),“添加到购物车”等等。
我没有使用路由来加载模板。它只是一个带有gsp中ng-app的grails应用程序,我在ajax $ http请求中从服务器渲染模板。
首次加载页面时,模型(数据)视图即将进入,因此事件正常。但是,当我使用$ http服务“加载更多”数据并附加到当前DOM时,事件绑定不起作用。即使是jquery点击事件也无效。
我用它来绑定数据:
$('#itemsSpace').append($compile(response.data)($scope));
if(!$scope.$$phase) {
$scope.$apply()
}
响应是使用html数据的服务器响应。
任何猜测?需要更多解释吗?
谢谢!
答案 0 :(得分:1)
var $items = $(response.data);
$('#itemsSpace').append($items);
$compile($items)($scope);
编辑:
查看$ compile的源代码,如果节点不是jQLite实例,编译器会将给定节点转换为jQLite对象。因此,OP的原始代码与此处的代码一样有效。 Example。因此,问题在于其他地方。