Tumpukan MeanJS, debugging Kesalahan sudut: fnPtr bukan fungsi

Saya sedang mempelajari tumpukan MeanJS (Mongo, Express, Angular, Node) dan menulis aplikasi web rencana sederhana. Saya dapat membuat daftar semua tugas dan membuat yang baru. Saat saya 'mengedit' suatu tugas, saya mengalami kesalahan ini:

TypeError: fnPtr is not a function

Saya berasumsi ada kesalahan penamaan atau sintaksis (berdasarkan ini dan ini pertanyaan SO) Masalahnya adalah saya tidak tahu di mana harus mencari salah penamaan atau sintaksis yang buruk karena struktur file cukup besar (peta 'aplikasi' dan 'publik' berjumlah 484 file). Saya tidak masuk ke fungsi pembaruan todo.client.controller atau 'todo.server.controller', karena ada log konsol di sana yang tidak dicetak. Tombol edit adalah masukan kirim, tapi saya tidak tahu ke mana selanjutnya.

Kode:

Bentuk potongan halaman 'edit'

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

Pengontrol klien:

    // 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;
        });
    };

Pengontrol server:

/**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);
    }
});
};

Adakah yang berpengalaman dengan tumpukan MeanJS atau Angular yang dapat mengarahkan saya ke arah untuk memulai debugging?


person RobSeg    schedule 24.07.2015    source sumber
comment
tombol pembaruan Anda tidak memanggil metode pembaruan di pengontrol Anda. tambahkan ini ke tag ‹input› Anda - ng-click="update()"   -  person v1shnu    schedule 24.07.2015
comment
Sesederhana itu, terima kasih! Jika Anda membuat jawaban, saya akan menerimanya   -  person RobSeg    schedule 24.07.2015
comment
Meskipun fungsi pembaruan berfungsi kembali, kesalahan fnPtr masih ada   -  person RobSeg    schedule 24.07.2015
comment
bisakah kamu menunjukkan jejak tumpukan?   -  person v1shnu    schedule 24.07.2015
comment
Kesalahan ini kebanyakan terjadi ketika ada kesalahan ketik pada kode. Silakan periksa apakah Anda sudah memasang semua tanda kurung dengan benar.   -  person v1shnu    schedule 24.07.2015


Jawaban (1)


Anda belum menambahkan ng-klik ke tombol kirim "Perbarui".

Ubah kode Anda menjadi ini:

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

Sedangkan untuk kesalahan fnPtr, tambahkan pelacakan tumpukan lengkap Anda agar dapat dianalisis.

Periksa juga apakah kode Anda telah menutup semua tanda kurung, Anda tidak menggunakan nama yang sama untuk 2 variabel dan kesalahan ketik.

person v1shnu    schedule 24.07.2015