Неопределенный тип «модель» в мангусте [дубликат]

В документации jQuery.fn.on есть хорошее объяснение.

Короче:

Обработчики событий привязаны только к выбранные в данный момент элементы; они должны существовать на странице, когда ваш код делает вызов .on().

blockquote>

Таким образом, в следующем примере #dataTable tbody tr должен существовать до генерации кода.

$("#dataTable tbody tr").on("click", function(event){
    console.log($(this).text());
});

Если на страницу вводится новый HTML-код, предпочтительнее использовать делегированные события для присоединения обработчика событий, как описано ниже.

Делегированные события имеют то преимущество, что они могут обрабатывать события от элементов потомков, которые будут добавлены в документ позже. Например, если таблица существует, но строки добавляются динамически с использованием кода, следующее будет обрабатывать ее:

$("#dataTable tbody").on("click", "tr", function(event){
    console.log($(this).text());
});

В дополнение к их способности обрабатывать события на дочерних элементах, которые еще не созданы, другим преимуществом делегированных событий является их потенциал для гораздо более низких накладных расходов, когда необходимо контролировать многие элементы. В таблице данных с 1000 строками в tbody первый пример кода прикрепляет обработчик к 1000 элементам.

Подход с делегированными событиями (второй пример кода) прикрепляет обработчик события только к одному элементу , tbody, и событию нужно только выровнять один уровень (от щелчка tr до tbody).

Примечание. Делегированные события не работают для SVG .

2
задан totalnoob 15 April 2017 в 20:49
поделиться

1 ответ

Чтобы вставить документ, вам необходимо передать его схему в документе, ссылающемся на документ. Для этого вы можете отдельно хранить схему в переменной как промежуточный шаг, а затем использовать ее для определения модели.

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ObjectId = Schema.ObjectId;

var CommentSchema = new Schema({
    title     : String,
    body      : String,
    date      : Date
});

var PostSchema = new Schema({
    comments  : [CommentSchema]
});


module.exports.Comment = mongoose.model('Comment', CommentSchema);
module.exports.Post = mongoose.model('Post', PostSchema);
2
ответ дан Talha Awan 19 August 2018 в 13:57
поделиться
  • 1
    Я получаю этот новый тип TypeError ('Undefined type ' + name + ' в array ' + path + ^ TypeError: Undefined type model` в массиве comments – totalnoob 15 April 2017 в 20:18
  • 2
    Обновите свой ответ и передайте полный код. – Talha Awan 15 April 2017 в 20:46
  • 3
    но разве это не просто для ref? Я пытаюсь сделать вложенные документы – totalnoob 15 April 2017 в 21:10
  • 4
    См. Обновление. Я принял ваш вопрос. – Talha Awan 15 April 2017 в 21:23
Другие вопросы по тегам:

Похожие вопросы: