2017-05-26 3 views
0

Ich habe Drop-Down, die Elemente von Json generiert.Ajax reload in eckigen js

`generalService.getUrlData('get_data') 
     .then(function(data){ 
      $scope.names = data.data; 
      for (var i=0; i < $scope.names.length; i++) { 
       var compn = $scope.names[i].NAME; 
       $scope.compname.push(compn); 
      } 
    });` 

meine Frage ist, wenn ich eine neue Daten eingegeben die neu eingegebenen Daten bevölkern nicht in der Dropdown mit typeahed Kombinationsfeld auf den db. Es füllt sich, nachdem die Seite neu geladen wurde. Wie lade ich den Ajax-Aufruf erneut, wenn der Submit-Button angeklickt wird, so dass das neu eingegebene Element im Dropdown-Menü erscheint, ohne die Seite neu zu laden. Ich hoffe, Sie haben meine Frage verstanden.

+0

erklären Sie Ihre Notwendigkeit richtig – jose

+0

kann nicht Sie die Funktion erneut aufrufen und binden Daten ,,? – Edison

+0

Sie speichern neue Daten in db nur über das Frontend, oder? Und der Code ist in der gleichen Steuerung? –

Antwort

0

Rufen Sie die getUrlData, sobald die neuen Daten-API-Aufruf speichern Erfolg.

ZB:

function getAllUrlData() { 
    generalService.getUrlData('get_data') 
    .then(function(data){ 
     $scope.names = data.data; 
     for (var i=0; i < $scope.names.length; i++) { 
      var compn = $scope.names[i].NAME; 
      $scope.compname.push(compn); 
     } 
    }); 
} 

function save newData (new_data) { 
    generalService.veNewasUrlData('get_data') 
    .then(function(data){ 
     getAllUrlData() // fecth all data again when save data is success 
    }); 
} 

ODER

Rufen Sie nicht wieder die getAllUrlData Funktion. Drücken Sie die neuen Daten einfach auf $scope.compname, wenn Sie die neuen Daten speichern.

$scope.compname.push(newData) // this will automatically come once reload. So no issues with temporary push 
1

Sie müssen eine neue HTTP-Anforderung aufrufen, wenn Sie neue Daten vom Server zum Client laden möchten.

wenn nur Ihre Daten vom Verbraucher eingegeben haben, können Sie neue Anforderung vermeiden durch serverseitige Update Simulation

0

Wenn Sie eine neue Daten in db eingegeben haben, verwenden Sie das typeahed-Kombinationsfeld. Sie müssen erneut dropdown getdata api auslösen. oder verwenden Sie $route.reload() nach neuen Daten zu db von typeahed Kombinationsfeld aber, es wird alle On-Fly-Funktionen Anfragen aufrufen.