意味着js堆栈,调试Angular错误:fnPtr不是一个函数
MeanJS stack, debugging Angular error: fnPtr is not a function
我正在学习MeanJS堆栈(Mongo, Express, Angular, Node)并编写一个简单的todo web应用程序。我可以列出所有待办事项,并创建一个新的。当我"编辑"待办事项时,我遇到了这个错误:
TypeError: fnPtr is not a function
我假设我有一些命名或语法错误(基于这个和这个SO问题)问题是我不知道在哪里寻找错误的命名或糟糕的语法,因为文件结构是相当大的("app"answers"公共"地图是484个文件)。我没有进入todo.client.controller
或todo服务器。控制器的更新功能,因为那里有一个控制台日志没有被打印出来。编辑按钮是一个提交输入,但我不知道它下一步去哪里。
分段表单"编辑"页面
<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,可以指向我在一个方向开始调试?
您没有在"Update"提交按钮中添加ng-click。
把你的代码改成:
<div class="form-group">
<input type="submit" value="Update" ng-click="update()" class="btn btn-default">
</div>
对于fnPtr错误,添加完整的堆栈跟踪,以便对其进行分析。
还要检查你的代码是否关闭了所有的括号,你没有对两个变量和拼写错误使用相同的名称。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 我可以在json对象中添加一个函数吗
- Javascript使函数一个接一个地执行
- 是JavaScript中的函数一个对象
- 两个几乎相等的jQuery函数;一个适用于IE,一个不适用于IE
- 两个Javascript函数一个window.onload=Custom.init;和一个window.onload=f
- 使javascript加载函数一个接一个地执行
- 如何通过两个嵌套的匿名函数(一个带有超时的事件处理程序)传递变量
- 为什么我不能让两个jQuery函数一个在另一个里面呢?
- 给函数一个变量名,而不是它的值
- 如何使用嵌入函数(一个滚动页由Pete - peachananr)
- 是否有可能给JavaScript函数一个类型/类?
- 确保两个函数一个接一个地执行,其中第一个函数内部有一个异步调用
- 两个不同的ajax函数一个接一个调用返回相同的值
- jQuery第一次更改函数一个工作
- 给这个函数一个id
- 如何给回调函数一个值一个变量在特定时刻
- 使用回调使两个函数一个接一个地运行
- 两个函数(一个用php)是否可以用“;onclick”;
- 两个几乎相同的函数.一个函数用Queue进行排队.Jquery效果在queued函数上不起作用.为什么