POST方法不从字段捕获数据 - AngularJS

时间:2016-07-19 17:48:58

标签: javascript angularjs forms

我正在尝试使用angularJS,nodeJS和JS提交一种JSON数据。但是,在提交时,表单不会捕获正文数据并将其发送到postgres数据库。我知道记录正在db中更新,因为我有一个字段“updatedAt”,它将更新时间戳更改为最近的时间戳。我已经尝试在一个updateform模型中将所有内容组合在一起,但这没有帮助,也阻碍了在html页面上显示记录中的数据。我不确定为什么angular不捕获表单数据并发送它。 这是带有angularJS片段的html:

<!DOCTYPE html > 
<html ng-app = "todo">
<body>
    <div class="container">
        <div ng-controller="TodoCtrl">
            <form ng-submit="updateTodo(updateform)" role="form" ng-init="updateform = {}">
                <div class="datagrid">
                    <table> 
                        <thead> 
                            <tr> 
                                <th> ID </th>
                                <th> Name </th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr ng-repeat="todo in todos | filter:{id:todoId} | orderBy:'id' | limitTo: 1 track by $index">
                                <td>
                                    <input type="hidden" ng-model="updateform.id" ng-init="updateform.id = todo.id">
                                    {{todo.id}}
                                </td>
                                <td>
                                    <div class="form-group">
                                        <input class="form-control" ng-model="updateform.todo" type="text"  value="{{todo.owner}}" />
                                    </div>
                                </td>
                            </tr>
                        </tbody>
                    </table>
                </div>
                <div>
                    <button type="submit"><strong>Update</strong></button>
                </div>
            </form>
        </div>
    </div>
</body>

从观察网络来看,身体反应不会从表格中获取任何数据;我有点亏本。我尝试用不同的模式重写它,但无济于事。 更新: 以下是updatetodo和updateform的JS模型片段:

$scope.updateform = {
    Name: '',

};
$scope.updateTodo = function() {
     $http.post('/todoupdate/'+$scope.todoId, {
        name: $scope.updateformName

    }).success(function (data,status, headers, config) {
        $scope.todos.push({
           name: $scope.updateformName

        });
    }).error(function (data,status, headers, congif) {
        console.log("whoopsies: "+ data)
    });
};

这是nodeJS片段:

exports.updatetodos = function (req, res) {
models.Todo.find({
where: {
  id: req.params.id
}
}).then(function(todo) {
if(todo) { // if the record exists in the db    
  todo.updateAttributes({
    name: req.body.name,
  }).then(function(todos) {
    res.json(todos.dataValues);
  }).catch(function(error){
    console.log("ops: " + error);
    res.status(500).json({ error: 'error' });
  });
  };
 });
};

0 个答案:

没有答案