ฉันกำลังเรียนรู้สแต็ก MeanJS (Mongo, Express, Angular, Node) และเขียนเว็บแอปสิ่งที่ต้องทำง่ายๆ ฉันสามารถแสดงรายการสิ่งที่ต้องทำทั้งหมดและสร้างรายการใหม่ได้ เมื่อฉัน 'แก้ไข' สิ่งที่ต้องทำ ฉันพบข้อผิดพลาดนี้:
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 stack หรือ Angular ที่สามารถชี้ทิศทางให้ฉันเริ่มแก้ไขจุดบกพร่องได้
ng-click="update()"
- person v1shnu   schedule 24.07.2015