大家。 我是AngularJS的新手,发现它非常有趣,但我对以下情况有点不清楚。
angular.module("myApp", []).controller("myCtrl", function ($scope) {
$('#light-pagination').pagination({
items: count,
itemsOnPage: 10,
cssStyle: 'light-theme',
onPageClick: function (pageNumber) {
ajaxHelper(AccountingObjectUri + '?$skip=' + (pageNumber * 10 - 10) + "&$top=10", 'GET').done(function (data) {
// console.log(data);
$scope.AccountingObject = data; //not working
});
}
});
}
我无法分配$ scope.AccountingObject = data;无论如何我可以将返回数据分配给$ scope吗?
答案 0 :(得分:3)
onPageClick
发生在通常的角度生命周期之外。在分配数据后,您需要调用$scope.$apply()
告诉angular更新视图。
.done(function(data) {
$scope.$apply(function() {
$scope.AccountingObject = data;
});
});
在angular中,一般规则是在控制器中没有直接的DOM操作,首选方法是使用带有修改DOM的链接函数的指令(即调用pagination()
)。
答案 1 :(得分:0)
使用$scope.$evalAsync
。
$scope.$evalAsync(function() {
$scope.AccountingObject = data;
});
理想情况下,您应该更新指令内的DOM而不是控制器。