2016-11-30 2 views
0

aktualisierte Objekt ist nicht immer ohne location.reload mit

Hallo ich werde Liste der Objekte von API bekommen, wo ich einen Wert aktualisieren muß, Nach diesem Wert in modalen Popup-Aktualisierung i Ich kann keinen neuen aktualisierten Wert erhalten, ohne location.reload zu verwenden. Gibt es dafür eine andere Lösung? Ich verwende zwei verschiedene Controller.

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

werden diese Gruppen ng-repeat, wo ich Schaltfläche Bearbeiten für jede Zeile haben wird, sobald ich Popup-Bearbeiten-Button klicken, wird

$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; 
     }); 
    }); 
}; 

Next einmal öffne ich die Gruppenname bearbeiten werde ich einreichen klicken

$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") 
      } 

     }) 
    } 

Ohne location.reload mit ich bin nicht in der Lage Anzeige aktualisierte Daten

+1

Sie müssen das Objekt aktualisieren, das in der Ansicht angezeigt wird. – Ladmerc

+0

versuchen Sie, den Wert zu ändern, den Sie in $ scope.groups aktualisiert haben, indem Sie einen eindeutigen Wert wie ID, Index –

Antwort

0

Verwenden $rootscope wie diese

dieses Add $rootScope.$emit("refreshData", {}); statt Location.reload();

Und dann diese für Lastdaten in Ihrem Haupt-Controller hinzuzufügen, ohne Refresh

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

Vergessen Sie nicht $rootScope zu injizieren .

+0

verwenden Vielen Dank @Roshan funktioniert gut –

Verwandte Themen