2015-02-11 55 views
0

我有下面的控制器發佈一個新用戶,也獲得新用戶。

這裏的問題是添加一個新用戶後,範圍沒有更新,所以視圖不受影響。我也厭倦了返回函數,所以它期望承諾,但沒有更新範圍。

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; 
      }); 
    } 
}; 
}]); 
+0

adddNewUser函數的代碼是什麼? – Koitoer 2015-02-11 08:14:12

+0

共享userService的代碼以及...我想問題可能會在那裏。您也可以更改更新調用的響應來獲取更新的用戶列表,而不是另一個數據庫調用,這是一個單獨的事情,但我觀察到一個點 – V31 2015-02-11 08:17:14

+0

@ V31我已經添加了服務部分 – user3840211 2015-02-11 09:04:43

回答

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(); 

     }); 
    } 


}]); 
+0

對不起,這是我的錯誤發佈問題時,我已更新問題 – user3840211 2015-02-11 10:30:57

+0

您是否獲得控制器的res變量中的響應? – V31 2015-02-11 12:20:56

+0

第一次加載頁面時,它獲取該值,但是在創建新用戶並且調用了相同的函數後,範圍不會更新,並且res也與頁面加載相同 – user3840211 2015-02-11 12:33:31