在 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,但您只传递了一个参数。这就是您收到此错误的原因。