Javascript 在angular中重新绑定jquery选择器
我有一个非常简单的angular应用程序,它有一个服务,使用http请求来下拉网页。然后,我想使用Javascript 在angular中重新绑定jquery选择器,javascript,jquery,angularjs,ng-bind-html,Javascript,Jquery,Angularjs,Ng Bind Html,我有一个非常简单的angular应用程序,它有一个服务,使用http请求来下拉网页。然后,我想使用ngbindhtml在我的应用程序中显示该页面 模板: <div class="container" ng-bind-html="data"></div> 这是从视觉角度进行的,但是javascript/jquery文件似乎已加载但未使用。我觉得这是因为运行时元素不可用 我觉得解决这个问题的最佳选择是以某种方式重新绑定所有元素,是否可以在不考虑每个选择器的情况下重新绑定整个
ngbindhtml
在我的应用程序中显示该页面
模板:
<div class="container" ng-bind-html="data"></div>
这是从视觉角度进行的,但是javascript/jquery文件似乎已加载但未使用。我觉得这是因为运行时元素不可用
我觉得解决这个问题的最佳选择是以某种方式重新绑定所有元素,是否可以在不考虑每个选择器的情况下重新绑定整个页面
我尝试使用$apply()
方法,将上述内容包装如下:
this.service.getHoliday().then(function(data) {
$scope.$apply(function() {
$scope.data = $sce.trustAsHtml(data);
});
});
但这会阻止页面完全加载html,我知道这是模糊的,但希望有人遇到了类似的问题,可以提供帮助 我可以告诉你为什么
$apply
至少没有影响和错误。这是为了告诉angular在angular框架外的范围发生变化时运行摘要循环,因此jQuery事件处理程序、回调等。如果在angular框架内调用它,正如您所做的那样,摘要循环将已经在进行中,因此它会抛出异常并停止操作,因此HTML不会被呈现。你是否在你的模块中注入了ngSanitize
?谢谢@ste2425我想我希望它能重新触发摘要,这样它就能在我呈现的HTML中重新运行js,但唉,这一定是我头脑中创造的魔法。@shaishabroy我没有,但如果我这样做,似乎没有什么区别
this.service.getHoliday().then(function(data) {
$scope.$apply(function() {
$scope.data = $sce.trustAsHtml(data);
});
});