Angular.js inline-editing

Ich versuche, den besten Ansatz für inline-editing mit angularjs. In meinem Fall ist es eine Art Daten-grid mit einer Schaltfläche "Bearbeiten". So ist es innerhalb von ng-repeat.

Was ich gesehen habe Menschen tun, ist sowohl die tatsächlichen Daten und der Bearbeitung der Eingänge in der gleichen Zeile, mit der Bearbeitung von Eingaben versteckt und angezeigt klicken Sie auf die Schaltfläche "Bearbeiten".

Aber es scheint nicht richtig. Es ist eine Menge von nutzlos-DOM-meiner Meinung nach.

So, ich dachte, ich wäre besser, so etwas zu tun. Klicken Sie auf die Schaltfläche Bearbeiten, die ist gonna haben eine Richtlinie, die würde, 1) ausblenden der <td> mit Daten 2) finden Sie die Schaltflächen " Eltern, die sollten <tr>, und Spritzen Sie eine Vorlage mit in es 3) auf speichern, entfernen Sie diese Bearbeiten <td>s und zeigen Sie die Daten <td>s wieder.

Also begann ich, mit der Richtlinie, im inneren hatte ich element.click() - Funktion, die

//found the parent
var parent = element.closest('tr');
//found all the data tds
var tds = parent.find('td');
//hidden them  
tds.hide();

Nun hier ist das problem, weiter habe ich daran gedacht, so etwas wie dieses

//append input with editing tds into parent
parent.append('<td><input type="text" ng-model="entry.name" /> {{entry.name}} </td>');

Aber dann würde es nicht binden oder gar analysieren, die {{}} wäre es? Welche Methode muss ich verwenden, anstatt die jquery append?

Doku über Richtlinien, sagt dieser

template-element - Das element, wo die Richtlinie erklärt wurde.
Es ist sicher zu tun, template transformation auf das element und Kind
Elemente nur.

So kann ich nicht verwenden, Vorlage transoformation auf das element.parent()

Würde es helfen, wenn ich die Richtlinie auf die <tr> und selbst wenn ich es täte, würde ich dann Verwandle meine ganze <tr>, was bedeutet, dass ich verloren die original-Vorlage und ich müsste eine andere Richtlinie oder etwas, was sich verändern würde, es wieder in den ursprünglichen Zustand.. würde ich nicht?

Bearbeiten

Da diese Fragen scheint ziemlich beliebt.. Erstens meine ursprüngliche Sorge der Erbringung zusätzliches element mit jedem ng-repeat iteration ist unbegründet, weil 1) Sie können mit ng-if, was bedeutet, es ist nicht gonna gerendert werden, bis die Bedingung wahr ist 2) man könnte anfügen eine Vorlage, wie ich wollte, dann verwenden Sie einfach $compile und es wird gut funktionieren, es ist definitiv nicht gonna be "teuer", denn Sie tun es nur für das eine element. Es gibt viele Möglichkeiten, dies zu nähern, aber ng-wenn ist die einfachste, wenn supermasher die Art und Weise nicht passt, ist, dass.

InformationsquelleAutor fxck | 2013-04-03
Schreibe einen Kommentar