Dokumenty Angular-Xeditable nie wyjaśniają jasno, ale wydaje się, że dane $ (i indeks $) są po prostu wartościami wstrzykniętymi i że możesz przekazać prawie wszystko, co chcesz, metodom składowania/sprawdzania poprawności. Więc to, co powinieneś robić, to przekazywanie samego obiektu (lub może tylko jego id).
Biorąc pod uwagę następujące znaczniki:
<div ng-repeat="p in people">
<a href="#" editable-text="p.name" onaftersave="updatePerson(p)">{{p.name}}</a>
</div>
Byłbyś wtedy następujący kod w kontrolerze:
$scope.updatePerson = function(person) {
var ret = PersonService.save(person); // or whatever save mechanism you use
// You need to return a error string if save fails, true otherwise
if (ret !== null) { // You have to make sure this logic works for your save service
return ret;
}
return true;
}
z tym, można następnie obsługiwać zapisać dowolny sposób. Nie jesteś zobowiązany do używania tylko danych $ lub wartości indeksu, które dostarcza Angular-Xeditable. Można równie dobrze zrobić coś takiego:
<div ng-repeat="p in people">
<a href="#" editable-text="p.name" onaftersave="updatePerson(p.id, p.name, p.dohickey)">{{p.name}}</a>
</div>
i aktualizować tylko nazwa i dohickey pola dla osoby z dostarczonego wartości znamionowej. Oczywiście musiałbyś zmienić metodę updatePerson(), aby zamiast tego oczekiwała ID jako pierwszego parametru i nazwy oraz dohickey jako drugiego i trzeciego paramera.
Należy również pamiętać, że jeśli użyjesz opcji onBeforeSave zamiast funkcji onAfterSave, tak jak to zrobiłem, p.nazwa nie będzie miała nowej wartości i będziesz musiał powrócić do używania danych $, aby uzyskać nową wartość.
Próbowałem Twojego rozwiązania przez cały dzień, ale nie wiem, co jest nie tak w moim kodzie. Dokument X-Editable nie jest aż tak pomocny. Twoje wyjaśnienie dało mi pewien dobry postęp, ale nadal nie mogę wykonać ostatniego zapisu w mojej bazie danych, czy mógłbybyś spojrzeć [na moje pytanie tutaj] (http://stackoverflow.com/questions/30606614/angularjs-update-database -using-x-editable)? – celsomtrindade
Jasne, przyjrzę się. –