从列表中删除项目 angular
Remove item from list angular
我已经习惯了普通的 MVC 服务器端编码,现在我正在努力学习 angular。我想制作一个用户界面,人们可以在其中将团队添加到他们登录的比赛中。要从我正在使用的列表中删除团队:
angular.module('Xtho.InschrijfController', [])
.controller("InschrCtrl", [
'$scope', '$http', function ($scope, $http) {
$scope.model = {};
$scope.wedstrijden = {};
$scope.states = {
};
$scope.new = {
ploeg: {}
};
$http.get('/inschrijvingen/IndexVM').then(function (data) {
$scope.model = data;
});
$scope.Vploeg = function (id, index) {
$http.post('/inschrijvingen/PloegVerwijderen', { id: id }).then(function (response) {
$scope.model.splice(index, 1);
});
};
}
]);
这是在视图中:
<p>{{ploegen.PloegNaam}} <a href="#" ng-click="Vploeg(ploegen.PloegID, $index)"><span class="fa fa-trash-o" aria-hidden="true"></span></a></p>
代码有效!但是,由于记录已从数据库中删除,它们仍在页面上显示的列表中。控制台提供以下错误:"n.model.splice is not a function",解决此问题的最佳方法是什么?
像这样。
angular.module('Xtho.InschrijfController', [])
.controller("InschrCtrl", [
'$scope', '$http', function ($scope, $http) {
$scope.model = {};
$scope.wedstrijden = {};
$scope.states = {
};
$scope.new = {
ploeg: {}
};
$scope.load = function(){
$http.get('/inschrijvingen/IndexVM').then(function (data) {
$scope.model = data;
});
};
$scope.load();
$scope.Vploeg = function (id, index) {
$http.post('/inschrijvingen/PloegVerwijderen', { id: id
}).then(function (response) {
//$scope.model.splice(index, 1);
$scope.load();
});
};
}
]);
$scope.model=[]//list
$scope.model={}//javascript object
使用$scope.model=[]
在这一行中,您正试图删除 $scope.model
变量的一个元素:
$scope.model.splice(index, 1);
我们只能对数组使用 splice()
,但看起来 $scope.model
不是数组,它在您的代码中被声明为对象:
$scope.model = {};
我真的不知道 $scope.model
是什么类型,当你试图从中拼接一个元素时。如果它是一个对象,你最好通过 id 删除元素:
$scope.Vploeg = function (id, index) {
$scope.idForRemove = id;
$http.post('/inschrijvingen/PloegVerwijderen', { id: id })
.then(function (response) {
delete $scope.model[$scope.idForRemove];
});
}
}
我已经习惯了普通的 MVC 服务器端编码,现在我正在努力学习 angular。我想制作一个用户界面,人们可以在其中将团队添加到他们登录的比赛中。要从我正在使用的列表中删除团队:
angular.module('Xtho.InschrijfController', [])
.controller("InschrCtrl", [
'$scope', '$http', function ($scope, $http) {
$scope.model = {};
$scope.wedstrijden = {};
$scope.states = {
};
$scope.new = {
ploeg: {}
};
$http.get('/inschrijvingen/IndexVM').then(function (data) {
$scope.model = data;
});
$scope.Vploeg = function (id, index) {
$http.post('/inschrijvingen/PloegVerwijderen', { id: id }).then(function (response) {
$scope.model.splice(index, 1);
});
};
}
]);
这是在视图中:
<p>{{ploegen.PloegNaam}} <a href="#" ng-click="Vploeg(ploegen.PloegID, $index)"><span class="fa fa-trash-o" aria-hidden="true"></span></a></p>
代码有效!但是,由于记录已从数据库中删除,它们仍在页面上显示的列表中。控制台提供以下错误:"n.model.splice is not a function",解决此问题的最佳方法是什么?
像这样。
angular.module('Xtho.InschrijfController', [])
.controller("InschrCtrl", [
'$scope', '$http', function ($scope, $http) {
$scope.model = {};
$scope.wedstrijden = {};
$scope.states = {
};
$scope.new = {
ploeg: {}
};
$scope.load = function(){
$http.get('/inschrijvingen/IndexVM').then(function (data) {
$scope.model = data;
});
};
$scope.load();
$scope.Vploeg = function (id, index) {
$http.post('/inschrijvingen/PloegVerwijderen', { id: id
}).then(function (response) {
//$scope.model.splice(index, 1);
$scope.load();
});
};
}
]);
$scope.model=[]//list
$scope.model={}//javascript object
使用$scope.model=[]
在这一行中,您正试图删除 $scope.model
变量的一个元素:
$scope.model.splice(index, 1);
我们只能对数组使用 splice()
,但看起来 $scope.model
不是数组,它在您的代码中被声明为对象:
$scope.model = {};
我真的不知道 $scope.model
是什么类型,当你试图从中拼接一个元素时。如果它是一个对象,你最好通过 id 删除元素:
$scope.Vploeg = function (id, index) {
$scope.idForRemove = id;
$http.post('/inschrijvingen/PloegVerwijderen', { id: id })
.then(function (response) {
delete $scope.model[$scope.idForRemove];
});
}
}