我使用Angular 1.4.7和angular-ui-router 0.2.15
作为状态路由器。我的标准控制器如下:
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); }
});
});
刚刚推出记录的控制器模板:
<h1>Page1</h1>
<div ng-repeat="record in records" class="row">
{{record.name}} ...
</div>
它有效但不稳定。有时我只收到带有标题的页面。看起来解析器数组是空的,但我在网络请求中看到列表请求已成功接收并且调用了成功函数。刷新页面后,我再次看到我的数据。
答案 0 :(得分:2)
您的ajax服务调用不在AngularJS的上下文中。 因此,您需要明确告知Angular某些数据已更改。
在将数据分配给$ scope变量后,可以在成功函数中调用$scope.$apply()
。
$scope.parsers = data;
$scope.$apply();
这可以解决您的问题。