gpt4 book ai didi

javascript - 来自 AJAX 的 AngularJS Controller 数据 - 并不总是有效

转载 作者:行者123 更新时间:2023-11-30 16:28:25 25 4
gpt4 key购买 nike

我使用 Angular 1.4.7 和 angular-ui-router 0.2.15 作为状态路由器。我的标准 Controller 如下所示:

var app = angular.module('App.Page1',[....]);
app.controller('Page1Ctrl',['$scope' ... ,function($scope ...) {
...
$scope.records = [];

// jsRoutes.controllers.Page1.list() - is ajax wrapper
jsRoutes.controllers.Page1.listitems().ajax({
success: function(data) {
console.log("RECV",data);
$scope.records = data
},
error: function(res){ console.log("ERROR",res); }
});
});

以及刚刚推出记录的 Controller 模板:

<h1>Page1</h1>
<div ng-repeat="record in records" class="row">
{{record.name}} ...
</div>

它可以工作但不稳定。有时我收到的页面只有标题。看起来解析器数组是空的,但我在网络请求中看到列表请求已成功收到并调用了成功函数。刷新页面后,我再次看到我的数据。

最佳答案

您的 ajax 服务调用在 AngularJS 的上下文之外。因此,您需要明确通知 Angular 某些数据已更改。

这可以在将数据分配给 $scope 变量后调用成功函数中的 $scope.$apply() 来完成。

$scope.parsers = 数据;
$scope.$apply();

这应该可以解决您的问题。

关于javascript - 来自 AJAX 的 AngularJS Controller 数据 - 并不总是有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33755625/

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