2016-03-31 150 views
0

目前我正在嘗試使用angularJS保存更新的函數。直到現在我可以編輯數據,數據可以在數據庫端更新,但是它並沒有顯示在前端。除非我必須註銷並再次登錄才能查看更新後的結果。我可以知道如何解決這個錯誤。AngularJS:無法保存數據

這是我的controller.js代碼:

.controller('FilmDetailController', //havent done yet 
      [ 
       '$scope', 
       'dataService', 
       '$routeParams', 
       '$location', 
       '$window', 
       'UserInfo', 

       function ($scope, dataService, $routeParams, $location,$window, UserInfo){ 
        //var userName=dataService.getSessionService('user'); 
        if(UserInfo.loggedIn){ 
         $scope.film = [ ]; 
         $scope.filmCount = 0; 

         var getFilmDetail = function (moviecode) { 
          dataService.getFilmDetail(moviecode).then(
           function (response) { 
            $scope.film = response.data.ResultSet.Result; 
            //$scope.userLoginEmail = dataService.getSessionService('userEmail'); 
            $scope.showSuccessMessage = true; 
            $scope.successMessage = "Film Success"; 
           }, 
           function (err){ 
            $scope.status = 'Unable to load data ' + err; 
           } 
          ); // end of getStudents().then 
         }; 

         $scope.editedFilm = {}; 
         $scope.save_note = function ($event,film) { 
          $scope.editedFilm = film; 
          dataService.saveNote($scope).then(
           function (response) { 
            // getFilmDetail(); 
            $window.location.href = '#/movieList'; 
            //$window.location.reload(); 
            console.log("done"); 
           }, 

           function (err){ 
            $scope.status = 'Unable to load data ' + err; 
           } 
          ); 
          // $scope.reloadRoute = function() { 
          //  $location.path('/movieList'); 
          //  $window.location.reload() 
          // }//end of reload route fnction 

         } 

         // only if there has been a courseid passed in do we bother trying to get the students 
         if ($routeParams && $routeParams.filmid) { 
         // console.log($routeParams.filmid); 
          getFilmDetail($routeParams.filmid); 
         } 
        }else{ 
         $location.path('/login'); 
        } 

       } 
      ] 
     ); 

一旦我上保存筆記按鈕的說明應在兩個角側進行更新,並在數據庫端點擊。目前它只能在數據庫方面更新,除了角度方面。先謝謝您的幫助。

+0

是U使用$ scope.film顯示在前端的數據。 – panwar

+0

是的,我使用$ scope.film來顯示我的數據 – anonymous5671

+0

然後你應該在更新響應之後調用getFilmDeails(),即在console.log(「done」)之後,或者將$ scope.editedFilm賦值給$ scope.Film – panwar

回答

0

從我可以告訴它看起來您需要將筆記數據存儲在服務中,並且當筆記已成功保存在數據庫中時,您需要將新筆記推送到您的服務數據中。

我創建了一個簡單的小提琴:https://jsfiddle.net/robrothedev/vgbqyv10/

function ItemService() { 
    var service = { 
    items: [], 
    addItem: addItem 
}; 

return service; 

function addItem(new_item) { 
    // run your http request and if the response is valid, 
    // push the new item to your service array 
    // $http.post(url,new_item).then(function(response) { 
    //  service.items.push(response.data.new_item); 
    // }); 
} 

}

function ItemsCtrl(ItemService) { 
    var vm = this; 

    vm.items = ItemService.items; 
    vm.new_item = {}; 
    vm.addItem = addItem; 

    function addItem() { 
    ItemService.addItem(vm.new_item); 
    vm.new_item = {}; 
    } 
}