ich editTable wie diese:Wie deaktivieren/aktivieren Sortierung während in AngularJS Bearbeitung
<tr ng-repeat='guest in guestList | orderBy:orderByField:reverseSort'>
<td><span ng-show='!guest.isedit'>{{guest.firstname}}</span><span ng-show='guest.isedit'><input type="text" ng-model='guest.firstname'/></span></td>
<td><span ng-show='!guest.isedit'><a href="javascript:void(0)" ng-click='editGuest(guest)'><i class="material-icons">mode_edit</i></a></span><span ng-show='guest.isedit'><button ng-click='contactUpdate(guest)'>OK</button></span></td>
</tr>
in meinem Controller:
$scope.editGuest = function(guest){
delete $scope.orderByField;
guest.isedit = true;
};
$scope.contactUpdate = function(guest){
//Save the change then put the order back to re-order the table
$scope.orderByField = 'firstname';
}
Wie Sie sehen können, ist dies eine editierbare Tabelle, wenn Ich klicke auf Bearbeiten, die Tabelle wird editierbar. Ich möchte die Sortierung beim Bearbeiten deaktivieren, bis der Benutzer die Bearbeitung beendet und die OK-Taste drückt (welche bereits auf dem Server gespeichert ist), dann werde ich mit neuen Daten neu bestellen. Das Problem ist, dass ich zum ersten Mal fire editGuest (Gast), es wird immer noch springen. Kann ich das irgendwie erreichen?
Ich denke, Vorname ist nicht in 'guestList' so es wird für alle '
Andernfalls müssen Sie den Gast in der 'contactUpdate'-Funktion übergeben und nach dem Speichern des' firstname'-Wertes. –
@ shyammakwana.me yup du hast Recht. Ich gebe den Gast in der Update-Funktion, so dass sollte kein Problem sein. Ich sollte den Vornamen löschen, nachdem ich ihn eingestellt habe –
Sie müssen zuerst die Bindung entfernen.
Erstellen Sie einen Klon von
guestList
Objekt und führen Sie die Bearbeitung darauf durch.Sobald das erledigt ist, weisen Sie das Klonobjekt wieder
guestList
zu.z.B.
var dummyGuestList = angular.copy (Gästeliste)
// Operationen mit
dummyGuestList
;Quelle
2017-01-19 05:49:38
Verwandte Themen