2016-11-30 2 views
0

обновленного объекта не получает без использования location.reload

Привета я получу список объектов из API, где я должен обновить одно значение, после обновления этого значения в модальном всплывающем окне я я не могу получить новое обновленное значение без использования location.reload. Есть ли другое решение для этого. Я использую два разных контроллера.

Will get list of objects from this 
$scope.groups=response.data 

будет нг-повторить это группу, в которых я буду иметь кнопку редактирования для каждой строки, только я нажимаю редактировать всплывающую кнопку откроется

$scope.editGroup = function(u) { 
    $scope.groupName=u.groupName; 
    $scope.groupId=u.groupId; 
    ModalService.showModal({ 
     templateUrl: 'app/components/modal/editGroupDetails.html', 
     controller: "ModalController", 
     scope: $scope 
    }).then(function(modal) { 
     modal.element.modal(); 
     modal.close.then(function(result) { 

      $scope.message = "You said " + result; 
     }); 
    }); 
}; 

Следующего раз я редактировать GroupName я нажму представить

$scope.updateGroupName=function(){ 
       var data={ 
       "groupId": $scope.groupId, 
       "groupName": $scope.groupName 
     } 
     url=globalUrlConfig.globalAdminApi+globalUrlConfig.updateGroup+$scope.schoolId; 
     $http({ 
      method: 'PUT', 
      url: url, 
      data: data, 
     }).success(function(response) { 
      console.log(response) 
      if(response._statusCode==200){ 
       alert(response.data); 

       location.reload(); 
      } 
      else{ 
       alert("not updated") 
      } 

     }) 
    } 

Без использования location.reload я не в состоянии отображать обновленные данные

+1

Вы должны обновить сам объект, отображаемый в представлении. – Ladmerc

+0

попытайтесь изменить значение, которое вы обновили в $ scope.groups, используя уникальное значение, например id, index –

ответ

0

Используйте $rootscope как этот

Добавить это $rootScope.$emit("refreshData", {}); вместо Location.reload();

А затем добавить это в основной контроллер для загрузки данных без обновления

var RefreshValue = $rootScope.$on("refreshData", function() { 
      GetValueMethod(); // call your method (List of object) for get data without reload form 
     }); 
     $scope.$on('$destroy', RefreshValue); 

Не забудьте придать $rootScope ,

+0

Спасибо большое @Roshan его отлично работает –

Смежные вопросы