Ich habe eine Angular-Factory erstellt, die ich dann in einem Controller verwende. Die Fabrik enthält eine delete
Methode, die ich versuche, in meinem Controller zu verwenden, jedoch sehe ich einen Fehler, der besagt, dass index
nicht definiert ist. Früher, bevor ich eine Fabrik hatte, und als alles in der Steuerung war, funktionierte diese Funktion, aber jetzt ist index
nicht länger definiert. Ich habe viele Antworten hier gelesen, kann aber keine Antwort finden.angular.js: 13424 ReferenceError: Index ist nicht definiert, wenn die Factory-Methode im Controller verwendet wird
Mein Code sieht wie folgt aus:
js
app.factory('addressFactory', function(){
var addressFactory = {};
addressFactory.addressBook = [];
addressFactory.deleteAddress = function(index) {
addressFactory.addressBook.splice(index, 1);
localStorage.setItem('addressBook', JSON.stringify(messages.addressBook));
}
return addressFactory;
})
.controller('testCtrl', ['$uibModal', 'addressFactory', function ($uibModal, addressFactory) {
this.addressBook = addressFactory.addressBook;
this.deleteAddress = addressFactory.deleteAddress(index);
}]);
html
<div ng-repeat="contact in ctrl.addressBook track by $index">
<p>{{contact.name}}</p>
<button ng-click="ctrl.deleteAddress($index)">Delete Contact</button>
</div>
BOOM! Prost dafür! –
@phantom kein Problem, froh, ich könnte helfen – ajmajmajma
Sogar Funktionsvariablenzuweisung würde funktionieren: 'this.deleteAddress = addressFactory.deleteAddress; \t // Notiz nicht this.deleteAddress = addressFactory.deleteAddress (index) ' –