0
私はコントローラで使用しているAngularファクトリを作成しました。工場には私のコントローラーで使用しようとしているdelete
メソッドが含まれていますが、が定義されていないというエラーが表示されています。以前は、工場を稼働させる前に、すべてがコントローラに入っていたときにこの機能が働いていましたが、現在index
は定義されていません。私はここで多くの答えを読んだが、答えは見つけられない。angular.js:13424 ReferenceError:コントローラでファクトリメソッドを使用しているときにインデックスが定義されていません
次のように私のコードは次のようになります。
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!それに乾杯! –
@phantom問題はありません。私は助けてくれるとうれしいです – ajmajmajma
偶数変数の代入はうまくいくでしょう: 'this.deleteAddress = addressFactory.deleteAddress; \t //注記しないthis.deleteAddress = addressFactory.deleteAddress(index) ' –