Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在angular中重新绑定jquery选择器_Javascript_Jquery_Angularjs_Ng Bind Html - Fatal编程技术网

Javascript 在angular中重新绑定jquery选择器

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文件似乎已加载但未使用。我觉得这是因为运行时元素不可用 我觉得解决这个问题的最佳选择是以某种方式重新绑定所有元素,是否可以在不考虑每个选择器的情况下重新绑定整个

我有一个非常简单的angular应用程序,它有一个服务,使用http请求来下拉网页。然后,我想使用
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);
    });
});