更改$ scope并不适用于查看

时间:2015-10-25 15:15:37

标签: angularjs

我的controller为:

app.controller('myPapersCtrl', function ($scope, $http) {
    $scope.papers = [];

    $scope.refreshGrid = function(){
        $http.get('api/getPapers').success(function (d) {
            $scope.papers = d;
        })
    }

    $scope.register = function () {
        $.post('api/register', $('#newPaperForm').serializeArray(), function (d, s, j) {
            $scope.refreshGrid()
        }
    }
}

并且在视图中我有一个像这样的按钮(一些Jade):

button(ng-click="register()") Regsiter

ng-repeat这样的元素:

li(ng-repeat="paper in papers") {{paper.blah}}

当我点击注册按钮时,我希望在服务器上发布我的数据,它会发生,但我也希望我的ng-repeat元素重复!但它没有!

我已跟踪代码,refreshGrid()会运行并更改$scope,但实际上没有任何反应。为什么呢?

1 个答案:

答案 0 :(得分:0)

您应该在$scope.$apply()后的refreshGrid()方法中致电$scope.papers = d。这应该会更新您的观点。