DOM更新事件后的AngularJs



在我的angularJs控制器中,我需要从控制器初始化的服务器加载一些图像

$http({
method: 'GET',
url: $scope.baseUrl + '/edit/' + $scope.idScheda
}).then(function (response) {
$scope.scheda = response.data;
//JQuery initialization
}).catch(function (error, status) {
$scope.show_error_message("Error", error.data.message);
});

然后我需要调用Jquery函数,将新上传的图像初始化为幻灯片显示

var swiper = new Swiper(".mySwiper", {
loop: true,
spaceBetween: 10,
slidesPerView: 4,
freeMode: true,
watchSlidesProgress: true,
});
var swiper2 = new Swiper(".mySwiper2", {
loop: true,
spaceBetween: 10,
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
thumbs: {
swiper: swiper,
},
});

如果我在";那么";$http的事件承诺DOM仍然不会更新,JQuery也不工作。

如果我延迟初始化JQuery组件以确保DOM更新,问题就会消失,但这是一个非常糟糕的解决方案!

是否有AngularJS管理的事件在DOM更新后触发?

$http执行以下操作:

  1. 运行http请求
  2. 运行您的then
  3. 运行digest

您希望在#3之后运行jquery代码,所以只需使用本机setTimeout(..., 0)$timeout(..., 0)将其排队即可

第页。S.你的普通angularjs代码不应该像那样使用丑陋的jquery-create指令/组件

<div cool-swiper="..."></div>

在onChanges中,您可以像您一样在超时的情况下运行jquery插件。

最新更新