Meteor Rubaxa: Сортируемое вложенное поле

Я пытаюсь использовать пакет meteor rubaxa:sortable, чтобы сделать список сортируемым в моем приложении метеора.

Список, который я пытаюсь отсортировать, на самом деле вложен в документ в Curriculums. Похоже на это...

{'id' : 123,
 'cratedAt' : timestamp, 
 'resources' : object
}

объекты ресурсов выглядят так

{'id' : 232, 'order' : 1}, {'id': 344, 'order' : 2} ....

Я использовал вспомогательную функцию, чтобы извлечь один элемент из учебных программ, которые я хочу отобразить.

return CurriculumList.findOne({_id: this.params._id})

Затем используйте {{#sortable items=resources}} в моем шаблоне. Вывод такой же, как у {{#each}}, а элементы можно перетаскивать и сортировать. Однако, когда я смотрю на консоль, я получаю эту ошибку:

rubaxa_sortable.js:1333 Uncaught TypeError: templateInstance.collection.findOne is not a function

Как я могу заставить этот пакет правильно обновлять поле «заказ»?


person GMarsh    schedule 16.10.2015    source источник


Ответы (1)


Проблема в том, что resources - это массив. Чтобы найти решение, обратитесь к обходному пути в ошибке № 287 на GitHub.

Ошибка № 194, которая указывает на проблему № 287, содержит пример MeteorPad очень похож на приведенный вами пример.

Кроме того, человек, открывший GitHub Issue #539, получает ту же ошибку и приравнивает ее к задача №194.

Также обратите внимание, что в соответствии с проблемой № 366 вы получите ту же ошибку, если коллекция пуста.

person Travis    schedule 16.10.2015