2015-04-24 1 views
7

У меня есть помощник шаблона, доступ к коллекции в моем приложении, но я выключил реактивность:.Исключения из функции пересчитывать Tracker

Template.homeBoxGroupsTpl.helpers({ 
    boxes: function() { 
     return Boxes.find({}, 
      { 
       sort: { 
        order: 1 
       }, 
       reactive: (Session.get("homeCanvasTplReactive") || false) 
      } 
     ); 
    } 
}); 

После того как я вставить новый элемент на моей странице, что в обновлениях своей очереди, сбор, Метеор выдаст ошибку в консоли браузера:

Error: Exception from Tracker recompute function: reporters.js?1429904535194:67 
Error: Error: Bad index in range.getMember: 16 
     at DOMRange.getMember (http://tidee-vm/packages/blaze.js?a5c324925e5f6e800a4c618d71caf2848b53bf51:586:11) 
     at http://tidee-vm/packages/blaze.js?a5c324925e5f6e800a4c618d71caf2848b53bf51:2727:45 
     at Object.Tracker.nonreactive (http://tidee-vm/packages/tracker.js?6d0890939291d9780f7e2607ee3af3e7f98a3d9c:593:12) 
     at Object.Blaze.Each.eachView.onViewCreated.eachView.stopHandle.ObserveSequence.observe.changedAt (http://tidee-vm/packages/blaze.js?a5c324925e5f6e800a4c618d71caf2848b53bf51:2721:17) 
     at http://tidee-vm/packages/observe-sequence.js?0532a9dd76dd78f543eb4d79a1e429df186d8bde:313:21 
     at Function._.each._.forEach (http://tidee-vm/packages/underscore.js?0a80a8623e1b40b5df5a05582f288ddd586eaa18:164:22) 
     at diffArray (http://tidee-vm/packages/observe-sequence.js?0532a9dd76dd78f543eb4d79a1e429df186d8bde:299:5) 
     at http://tidee-vm/packages/observe-sequence.js?0532a9dd76dd78f543eb4d79a1e429df186d8bde:147:9 
     at Object.Tracker.nonreactive (http://tidee-vm/packages/tracker.js?6d0890939291d9780f7e2607ee3af3e7f98a3d9c:593:12) 
     at http://tidee-vm/packages/observe-sequence.js?0532a9dd76dd78f543eb4d79a1e429df186d8bde:121:15 

Любые идеи, как отладить это, или это вопрос Метеор?

+1

Что входит в строку 67 вашего reporters.js? –

+0

Репортер.js просто сообщает об ошибке «Исключение из функции повторного прослушивания трекера». – JoeTidee

ответ

0

Сообщения об ошибках метеоров ужасны во всех браузерах, но Chrome, потому что Meteor ожидает, что трассировки стека будут содержать сообщения об ошибках, но это делается только Chrome. Мне не нравится это говорить, но вам, вероятно, придется использовать Chrome при отладке приложения Meteor. :(

0

У меня нет решения, но я тоже столкнулся с той же ошибкой и смог решить для своего дела, поэтому отправляю его, надеясь, что он поможет вам отладить проблему (хотя это вряд ли похоже help). Причиной было использование .length. У меня был большой массив (имя массива: данные), и чтобы сделать его коротким (уменьшить длину выделения), я назначал data.length = 5, что как-то вызывало ошибку, и метеорный помощник не работает, как ожидалось. Удаление этой линии работали для меня, и я достиг укорочение массива, для цикла, и хранение первые пять элементов в другой переменной.

0

я столкнулся аналогичная проблема тоже :(

Мне удалось решить эту проблему, указав уникальные имена Tempaltes, соответствующие ему методы Helpers в файле .js и имена объектов Mongo DataBase.

Надеется, что это может работать для вас тоже :)

0

Для меня, я получаю эту ошибку от нее говоря ReactionProduct.selectedVariant() является null на одном из циклов метеора.

Я просто обработал null случай с:

if (ReactionProduct.selectedVariant() === null) { 
    return; 
} 

, и это работает для меня.

 Смежные вопросы

  • Нет связанных вопросов^_^