Daha sonra bir denetleyicide kullandığım bir Açısal fabrika oluşturdum. Fabrikada, denetleyicimde kullanmaya çalıştığım bir delete
yöntemi var, ancak, index
'un tanımlanmadığını belirten bir hata görüyorum. Önceden, bir fabrika yapmadan önce ve her şey denetleyicide olduğunda bu işlev işe yaradı, ancak şimdi index
artık tanımlanmadı. Burada birçok cevap okudum ama cevap bulamıyorum. aşağıdaki gibi benzeriangular.js: 13424 ReferenceError: denetleyicide fabrika yöntemi kullanılırken dizin tanımlanmadı
Kodum arar:
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! Bunun için alkışlar! –
@phantom sorun değil, ben yardımcı olabilir – ajmajmajma
Hatta işlev değişken ataması işe yarar: 'this.deleteAddress = addressFactory.deleteAddress; \t // not this this.deleteAddress = addressFactory.deleteAddress (index) ' –