繁体   English   中英

MeanJS堆栈,调试Angular错误:fnPtr不是函数

[英]MeanJS stack, debugging Angular error: fnPtr is not a function

我正在学习MeanJS堆栈(Mongo,Express,Angular,Node)并编写一个简单的todo webapp。 我可以列出所有待办事项并创建一个新的待办事项。 当我“编辑”待办事项时,遇到此错误:

TypeError: fnPtr is not a function

我假设我有一些命名或语法错误(基于这个这个 SO问题)问题是我不知道到哪里寻找错误的命名或语法错误,因为该文件结构是相当大的(“应用”和'公众的地图有484个文件)。 我没有进入todo.client.controller或'todo.server.controller'更新功能,因为那里没有打印控制台消息。 编辑按钮是一个提交输入,但是我不知道下一步该怎么做。

码:

计件表的“编辑”页面

<div class="form-group">
  <input type="submit" value="Update" class="btn btn-default">
</div>

客户端控制器:

    // Update existing Todo
    $scope.update = function() {
        console.log('update');
        var todo = $scope.todo;
        todo.$update(function() {
            $location.path('todos/' + todo._id);
        }, function(errorResponse) {
            $scope.error = errorResponse.data.message;
        });
    };

服务器控制器:

/**Update a Todo*/
exports.update = function(req, res) {
console.log('todo controller');
var todo = req.todo;
todo = _.extend(todo, req.body);
Todo.update({_id: req.body._id}, req.body, function(err, update) {
//todo.save(function(err) {
    if (err) {
        return res.status(400).send({
            message: errorHandler.getErrorMessage(err)
        });
    } else {
        res.json(todo);
    }
});
};

任何具有MeanJS堆栈或Angular经验的人都可以为我指明开始调试的方向吗?

您尚未将ng-click添加到“更新”提交按钮。

将代码更改为此:

<div class="form-group">
  <input type="submit" value="Update"  ng-click="update()" class="btn btn-default">
</div>

至于fnPtr错误,请添加完整的堆栈跟踪,以便对其进行分析。

另外,请检查代码是否已将所有方括号括起来,并且没有对2个变量和错别字使用相同的名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM