2016-03-31 4 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

ты пользуешься $ scope.film для отображения данных на переднем конце. – panwar

+0

yes Я использую $ scope.film для отображения моих данных – anonymous5671

+0

, тогда u должен либо вызвать 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 = {}; 
    } 
} 
Смежные вопросы