2016-07-22 9 views
0

Ich mache hinzufügen und bearbeiten in 1 Seite. Listing wird unten in einer Tabelle angezeigt. Aus der Liste, während ich auf die Schaltfläche Bearbeiten klicke, möchte ich die ID dieses Elements in der URL übergeben. Wenn die Seite versehentlich aktualisiert wird, bleiben die Daten im Bearbeitungsformular. Und auch verschachtelte Ansicht Ich verwende (zB: settings.couriers) Meine htmlWie übergeben Sie einen Parameter an die URL von Controller mit angularjs

<button class="btn btn-primary btn-xs" ng-click="editCourier({id: x.id})"> 
             <i class="fa fa-pencil"></i> 
            </button> 

Mein controller.js

$scope.editCourier = function(id, index) { 
     $.ajax({ 
      'type': "POST", 
      'async': false, 
      'global': false, 
      'url':'settings/editCourier', 
      'data': 'id='+id, 
      'dataType': "json", 
      'success': function (data) { 
       $scope.formData = data[0];     
      } 
     });  
    } 

zu bearbeiten Gibt es eine Möglichkeit, aus. bitte hilfe. Danke

+0

meine Bearbeitung funktioniert gut. Aber ich möchte die ID als URL-Parameter übergeben. Wenn ich also die Seite aktualisiere, bleibt der Wert im Eingabefeld – AAT

+0

intakt. Dies ist also kein SPA mit Routing usw., aber Sie wollen die URL nur beeinflussen, falls eine unerwünschte Seitenaktualisierung auftritt, während das Bearbeitungsformular angezeigt wird ? –

+0

Um genauer zu sein ist meine URL: http: // localhost/meinProjekt/#/Staffs/Add_Staff? ID = 52. Wie kann ich ID-Wert in meinem Controller bekommen? Ich habe versucht $ stateParams.id. – AAT

Antwort

0

Changed mein HTML

<button class="btn btn-primary btn-xs" ng-click="editCourier(index)"> 
             <i class="fa fa-pencil"></i> 
            </button> 

Ich habe meine Controller-Funktion geändert.

$scope.editCourier = function(index) { 
     $.ajax({ 
      'type': "POST", 
      'async': false, 
      'global': false, 
      'url':'settings/editCourier', 
      'data': 'id='+ $stateParams.id, 
      'dataType': "json", 
      'success': function (data) { 
       $scope.formData = data[0]; 
       $scope.couriers.splice(index, 1); 
       $state.go('statename', {id: $stateParams.id}, {reload: true});    
      } 
     });  
    } 
0

Änderung:

<button class="btn btn-primary btn-xs" ng-click="editCourier({id: x.id})"> 
    <i class="fa fa-pencil"></i> 
</button> 

zu:

<a href="/editCourier/id" /> 

und in der Steuerung erhalten Sie die Id Angular des RouteParams verwenden. Siehe diese link

0

Sie können direkt ID passieren editCourier (x.id)

<button class="btn btn-primary btn-xs" ng-click="editCourier(x.id)"> 
    <i class="fa fa-pencil"></i> 
    </button> 

Und In Controller Funktion

$scope.editCourier = function(id, index) { 
     console.log(id);//Check here whether the click id is coming or not 
} 
Verwandte Themen