我正在学习MeanJS堆栈(Mongo,Express,Angular,Node)并编写一个简单的todo webapp。我可以列出所有待办事项并创建一个新的待办事项。当我编辑'一个todo,我遇到了这个错误:
TypeError: fnPtr is not a function
我假设我有一些命名或语法错误(基于this和this SO问题)
问题是我不知道在哪里寻找错误的命名或错误的语法,因为文件结构非常大(' app'公共'地图是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的人都可以指出我开始调试的方向吗?
答案 0 :(得分:1)
您尚未添加ng-click到&#34;更新&#34;提交按钮。
将您的代码更改为:
<div class="form-group">
<input type="submit" value="Update" ng-click="update()" class="btn btn-default">
</div>
至于fnPtr错误,请添加完整的堆栈跟踪,以便对其进行分析。
同时检查您的代码是否已关闭所有括号,您没有为2个变量和拼写错误使用相同的名称。