我在Angular指令中有一些代码如下所示:
$scope.populateResults = function (list_results) {
$scope.$apply(function() {
console.log("Applying", list_results);
if (list_results.attractions.length === 0) console.log("Empty list");
$scope.attractionsList.list_results = [];
$.each(list_results.attractions, function(index, attraction) {
console.log("executing for each");
if (attraction) {
attraction.addedWaypoint = false;
$scope.attractionsList.list_results.push(attraction);
}
});
console.log($scope.attractionsList.list_results);
});
};
该函数作为回调传递给在另一个文件中处理的AJAX请求。 console.log语句都按预期打印所有内容,但视图不会更改。当我在另一个函数中打印$ scope.attractionsList.list_results的值时,它显示该列表为空。不应该在$ apply函数中更改$ scope变量这一事实意味着视图会更新吗?这只会偶尔发生。我没有看到从AJAX请求返回的任何错误,并且$ .each循环中的所有console.log都按预期打印。我还应该在哪里寻找这个错误?