选择器中的angular $ scope

时间:2016-04-11 15:10:16

标签: jquery angularjs api asp.net-web-api

大家。 我是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吗?

2 个答案:

答案 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而不是控制器。