在 AngularJS + NodeJS + Postgresql 中删除行
Delete row in AngularJS + NodeJS + Postgresql
为什么我可以在前端删除行,但在 postgresql 中却没有删除?
我一直在我的程序中从其他菜单复制粘贴代码,但它不起作用。
我一直在尝试在 google 中搜索,因为我认为我的代码是错误的,但它是一样的!
这是我的angularJS控制器
$scope.getDataLoct = function(){
PanelEditor.getDataLoct().then(function(result) {
console.log('result loct',result);
var res = result.data;
console.log('resultdataloct', res);
$scope.tampil= res;
});
}
$scope.deleteVenues = function(dataD, idx){
var dataD = $scope.tampil[idx];
console.log('dataD',dataD);
PanelEditor.deleteVenue(dataD).then(function(result){
console.log('sukses');
$scope.tampil.splice(idx, 1);
});
}
这是我的angularJSHTML
<div ng-model ="info">
<table class="ui celled padded table">
<thead>
<tr>
<th>No</th>
<th>Title</th>
<th>Addres</th>
<th>Latitude</th>
<th>Longitude</th>
<th>Action</th>
</tr>
</thead>
<tbody class="content" ng-repeat="tmp in tampil track by $index">
<tr>
<td class="collapsing">
<div class="ui ribbon label">{{$index +1}}</div>
</td>
<td >{{tmp.title}}</td>
<td >{{tmp.address}}</td>
<td >{{tmp.latitude}}</td>
<td >{{tmp.longitude}}</td>
<td><div class="ui small blue basic icon buttons right floated">
<button class="ui button" tooltips tooltip-content="Edit" tooltip-side="bottom" tooltip-speed="fast" tooltip-size="small" tooltip-hide-trigger="click mouseleave" ng-click="clickMenuVenue('loct','Edit Venue','',info)">
<i class="write icon"></i>
</button>
<button class="ui button" tooltips tooltip-content="delete" tooltip-side="bottom" tooltip-speed="fast" tooltip-size="small" tooltip-hide-trigger="click mouseleave" ng-click="deleteVenues($index)">
<i class="remove icon"></i>
</button>
</div></td>
</tr>
</tbody>
</table>
</div>
这是我的 angularJS 服务
getDataLoct: function() {
return $http.get('/venue/getAll/');
},
deleteVenue: function(dataD) {
console.log('service',dataD);
return $http.post('/venue/deleteVenue/',dataD);
}
这是我的 NodeJS 控制器
deleteVanue: function (req, res) {
Vanue.destroy({id:req.param('id')}).exec(function (err){
return res.json(200);
});
},
getAll: function (req, res) {
Venue.find().sort({ id: 'asc' }).exec(function (err, found){
return res.json(200, found);
});
}
当我点击删除按钮时,控制台打印了这个
dataD undifinded
有人可以帮忙吗??!!
如果我的问题有错误请帮我修正
在你的删除函数中:
$scope.deleteVenues = function(dataD, idx) {..}
您的控制器中有两个参数。
但是在视图中你只用一个参数调用它:
ng-click="deleteVenues($index)"
有两种选择:
要么传递要删除的整个对象,要么传递 $index
.
现在您的应用想要在控制器中读取 idx
,但您只传递了一个参数。这就是您收到此错误的原因。
为什么我可以在前端删除行,但在 postgresql 中却没有删除? 我一直在我的程序中从其他菜单复制粘贴代码,但它不起作用。 我一直在尝试在 google 中搜索,因为我认为我的代码是错误的,但它是一样的!
这是我的angularJS控制器
$scope.getDataLoct = function(){
PanelEditor.getDataLoct().then(function(result) {
console.log('result loct',result);
var res = result.data;
console.log('resultdataloct', res);
$scope.tampil= res;
});
}
$scope.deleteVenues = function(dataD, idx){
var dataD = $scope.tampil[idx];
console.log('dataD',dataD);
PanelEditor.deleteVenue(dataD).then(function(result){
console.log('sukses');
$scope.tampil.splice(idx, 1);
});
}
这是我的angularJSHTML
<div ng-model ="info">
<table class="ui celled padded table">
<thead>
<tr>
<th>No</th>
<th>Title</th>
<th>Addres</th>
<th>Latitude</th>
<th>Longitude</th>
<th>Action</th>
</tr>
</thead>
<tbody class="content" ng-repeat="tmp in tampil track by $index">
<tr>
<td class="collapsing">
<div class="ui ribbon label">{{$index +1}}</div>
</td>
<td >{{tmp.title}}</td>
<td >{{tmp.address}}</td>
<td >{{tmp.latitude}}</td>
<td >{{tmp.longitude}}</td>
<td><div class="ui small blue basic icon buttons right floated">
<button class="ui button" tooltips tooltip-content="Edit" tooltip-side="bottom" tooltip-speed="fast" tooltip-size="small" tooltip-hide-trigger="click mouseleave" ng-click="clickMenuVenue('loct','Edit Venue','',info)">
<i class="write icon"></i>
</button>
<button class="ui button" tooltips tooltip-content="delete" tooltip-side="bottom" tooltip-speed="fast" tooltip-size="small" tooltip-hide-trigger="click mouseleave" ng-click="deleteVenues($index)">
<i class="remove icon"></i>
</button>
</div></td>
</tr>
</tbody>
</table>
</div>
这是我的 angularJS 服务
getDataLoct: function() {
return $http.get('/venue/getAll/');
},
deleteVenue: function(dataD) {
console.log('service',dataD);
return $http.post('/venue/deleteVenue/',dataD);
}
这是我的 NodeJS 控制器
deleteVanue: function (req, res) {
Vanue.destroy({id:req.param('id')}).exec(function (err){
return res.json(200);
});
},
getAll: function (req, res) {
Venue.find().sort({ id: 'asc' }).exec(function (err, found){
return res.json(200, found);
});
}
当我点击删除按钮时,控制台打印了这个 dataD undifinded
有人可以帮忙吗??!!
如果我的问题有错误请帮我修正
在你的删除函数中:
$scope.deleteVenues = function(dataD, idx) {..}
您的控制器中有两个参数。
但是在视图中你只用一个参数调用它:
ng-click="deleteVenues($index)"
有两种选择:
要么传递要删除的整个对象,要么传递 $index
.
现在您的应用想要在控制器中读取 idx
,但您只传递了一个参数。这就是您收到此错误的原因。