数据库触发后$ scope不会更新

时间:2015-02-11 08:10:23

标签: angularjs angularjs-scope

我有以下控制器发布新用户并获得新用户。

此处的问题是在添加新用户后,范围未更新,因此视图不受影响。我也厌倦了返回函数,所以它期望一个承诺,但没有更新范围。

myapp.controllers('users', ['usersService', ''$scope',', function(usersService, $scope){

   getUsers();

   function getUsers(params) {
       if (typeof(params) === "undefined") {
             params = {page: 1};
        }

   usersService.getUsers(params).then(function (res) {
        $scope.users = res.items;
        $scope.usersListTotalItems = res._meta.totalCount;
        $scope.usersListCurrentPage = res._meta.currentPage + 1;
    });
        }


   }


 $scope.addUser = function (user) {
        usersService.adddNewUser(user).then(function (response) {

           getUsers();

        });
    }


}]);



myApp.factory('userService', ['Restangular', '$http', function (Restangular, $http) {

return {

    getUsers: function (params) {

        var resource = 'users/';
        var users = Restangular.all(resource);

        return users.getList(params)
            .then(function (response) {
                return {
                    items : response.data[0].items,
                    _meta : response.data[0]._meta
                }
            });
    },

     adddNewUser: function (items) {

        var resource = Restangular.all('users');

        var data_encoded = $.param(items);
        return resource.post(data_encoded, {}, {'Content-Type': 'application/x-www-form-urlencoded'}).
            then(function (response) {
                return response;
            },
            function (response) {
                response.err = true;
                return response;
            });
    }
};
}]);

1 个答案:

答案 0 :(得分:0)

我认为这是一个小错误,但是你没有在控制器函数的参数中包含$ scope。

myapp.controllers('users', ['usersService','$scope', function(usersService $scope){

   getUsers();

   function getUsers(params) {
       if (typeof(params) === "undefined") {
             params = {page: 1};
        }

   usersService.getUsers(params).then(function (res) {
        $scope.users = res.items;
        $scope.usersListTotalItems = res._meta.totalCount;
        $scope.usersListCurrentPage = res._meta.currentPage + 1;
    });
        }


   }


 $scope.addUser = function (user) {
        usersService.adddNewUser(user).then(function (response) {

           getUsers();

        });
    }


}]);