1

У меня есть приложение, встроенное в MeteorJS, которое я построил на версии 1.2. Теперь я обновлен до 1.4.0.1 и начал перемещать некоторые зависимости из пакетов Атмосфера в NPM. Некоторые из них отлично справились, некоторые с головными болями, но те были на высшем уровне. У меня теперь возникают проблемы с тем, чтобы заставить других работать, например, Bootstrap Date Time Picker. Я удалил пакет:MeteorJS заменяет пакеты с отказами NPM

meteor remove tsega:meteor-bootstrap3-datetimepicker 

и добавил НПМ эквивалент:

npm install --save eonasdan-bootstrap-datetimepicker 

В моей стороне клиента файл шаблона addEvent.js Я получил это в верхней:

import $ from 'jquery'; 
import moment from 'moment'; 
import dateTimePicker from 'eonasdan-bootstrap-datetimepicker'; 

Далее далее в блоке onRendered:

/* Set instance var */ 

const instance = this; 

/* Date/time picker start */ 

instance.$('#addDateStart').datetimepicker({ 
    icons: { 
     time: 'fa fa-clock-o', 
     date: 'fa fa-calendar', 
     up: 'fa fa-chevron-up', 
     down: 'fa fa-chevron-down', 
     previous: 'fa fa-chevron-left', 
     next: 'fa fa-chevron-right', 
     today: 'fa fa-dot-circle-o' 
    }, 
    format: 'Do MMMM YYYY HH:mm', 
    sideBySide: true 
}); 

/* Date/time picker end */ 

instance.$('#addDateEnd').datetimepicker({ 
    icons: { 
     time: 'fa fa-clock-o', 
     date: 'fa fa-calendar', 
     up: 'fa fa-chevron-up', 
     down: 'fa fa-chevron-down', 
     previous: 'fa fa-chevron-left', 
     next: 'fa fa-chevron-right', 
     today: 'fa fa-dot-circle-o' 
    }, 
    useCurrent: false, 
    format: 'Do MMMM YYYY HH:mm', 
    sideBySide: true 
}); 

Я получаю сообщение об ошибке в консоли браузера:

Exception from Tracker afterFlush function: 
debug.js:41TypeError: instance.$(...).datetimepicker is not a function 
at .<anonymous> (addEvent.js:84) 
at template.js:119 
at Function.Template._withTemplateInstanceFunc (template.js:465) 
at fireCallbacks (template.js:115) 
at .<anonymous> (template.js:208) 
at view.js:107 
at Object.Blaze._withCurrentView (view.js:538) 
at view.js:106 
at Object.Tracker._runFlush (tracker.js:511) 
at onGlobalMessage (setimmediate.js:102) 

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

ответ

0

Смотрите ли не datetimepicker является частью конструктора JQuery

$.prototype.hasOwnProperty("datetimepicker"); 

Если нет, то ли это на глобальный объект:

instance.hasOwnProperty("datetimepicker"); 

Если да, то добавьте его в прототип JQuery:

$.prototype.datetimepicker = instance.datetimepicker; 

Ссылки