gpt4 book ai didi

javascript - 如何让 Angular 在 ajax get 之后更新集合

转载 作者:行者123 更新时间:2023-11-28 01:19:45 26 4
gpt4 key购买 nike

我一直在使用 Angular,我正在尝试让它与 jQuery Promise 更新列表一起工作。如果我创建数组 RestaurantItems 数组并从一开始就填写了对象,那么它会按预期工作,但是当我使用回调进行推送时,它似乎看不到我添加的项目。我已经通过代码进行了调试,并且我知道所有内容都正在使用我期望的值进行调用,但实际 View 从未被更新。我尝试了 $watch/$watchCollection,但要么我做错了,要么我误解了。这是我现在的代码。

export class Controller {
public static $inject = [
'$scope',
'$location'
];
constructor(private $scope:IActiveOrderController, private $location:ng.ILocationService) {
$scope.restaurantItems = [];
var test = function(x)
{
debugger;
for (var i = 0; i < x.length; i++) {
$scope.restaurantItems.push(x[i]); // Verified this does actually push the correct object on the array.
}
};
ActiveOrderRepository.getActiveOrderItemsForActiveOrder(1).done(test);
}
}

最佳答案

$watchCollection 对我来说工作得很好。

你提到你正在使用 jQuery Promise如果您在 Angular 中使用第三方库。Angular 可能不知道 $scope 已更新。

你应该使用$scope.$apply。

例如

$.get(...).then(function(data){
$scope.$apply(function(){
$scope.data = data
})
})

关于javascript - 如何让 Angular 在 ajax get 之后更新集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23378468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com