我想从 ng repeat ui-route 中删除一个 td

I want to remove a td from ng repeat ui-route

好吧,我想做的很简单。 我有一个像这样的 table :

<table>
        <tr ng-repeat="message in messages">
            <td>{{message.id}}</td>
            <td>{{message.subject}}</td>
            <td>{{message.content}}</td>
   <td>{{message.date}}</td>
        </tr>
    </table>

在我的 server.js 中,我这样写 api

app.delete('/messages/:id',function(req,res){
    var idm = req.params.id
    Message.find({
        where : {
            id : idm

        }
    })
    .success(function(messsage) {
        Message.destroy({
            where :{
                id :idm
            }
        })

            .success(function(){
                res.status(202).send('deleted message')
            })
    })
    
})
在控制器中我尝试使用

    $scope.deleteMessage = function(message){
        var idm=$state.id
        $http.delete('/messages/'+idm,message)
        .succes(function(){
            $scope.status='deleted'
            $state.go($state.current,{},{reload : true})

        })
        .error(function(){
            $scope.status = 'not deleted'
        })


    }

当我单击按钮时,我在视图中又名:

 <input type="number" ng-model="message.id" placeholder="Id to delete" />

代码在后端运行,它说:Executing delete from messages where id='undefined'。所以我想问题是我没有正确地传递 id。

我尝试使用 postman 对某个 id 发出删除请求并且它有效。 谢谢你的时间。

我假设您使用的是 angular ui-路由器。尝试将 $state.id 更改为 $stateParams.id,猜测 $state/messages/:id 作为 url。 More info

$scope.deleteMessage = function(message){
    var idm=$stateParams.id
    $http.delete('/messages/'+idm,message)
    .succes(function(){
        $scope.status='deleted'
        $state.go($state.current,{},{reload : true})

    })
    .error(function(){
        $scope.status = 'not deleted'
    })
}

顺便说一句,(与问题无关)改进 server.js 文件的一种方法如下:

app.delete('/messages/:id',function(req,res){
  var idm = req.params.id
  Message.find(idm)
    .success(function(messsage) {
      message.destroy()
        .success(function(){
            res.status(202).send('deleted message')
        });
    });
});

或:

app.delete('/messages/:id',function(req,res){
  var idm = req.params.id
  Message.destroy({where: {id: idm}})
    .success(function(affectedRows) {
      if (affectedRows == 1) {
        res.status(202).send('deleted message')
      } else {
         // something went wrong and none or more than one messages were deleted
      }
    });
});

原来如此简单:

 $scope.deleteChampion = function(champion){ $http.delete('/champions/'+champion.id) $state.go($state.current,{},{reload : true}) } all i had to do was add " + champion.id