Проверка представления основы, если элемент имеет указатель даты
Во-первых: извините за ужасное название темы
У меня есть базовое представление, которое имеет метод onRender(). То, что он делает, инициализирует все выборки с помощью плагина select jquery (selected) и некоторые поля ввода текста с помощью плагина jquery bootstrap-datepicker ( https://github.com/uxsolutions/bootstrap-datepicker).
вот код (coffeescript)
onRender: =>
### init chosen select picker ###
$('.chosen-select', @el).chosen
width: '100%'
### init datepickers ###
$('.date', @el).datepicker()
Теперь я хочу написать спецификации для представления, и я застрял с тестированием, если средства выбора данных и selected-select были инициализированы для соответствующих элементов элементов.
Вот я и пытаюсь на консоли:
для избранных было легко:
/* lets build the view */
v = new MyBackboneView();
v.render();
v.onRender();
/* now lets grab a select that I expect to be an chosen select now */
select = $(':input[name="user_id"]', v.el);
/* now I check for the chosen function on the element */
$(select).data('chosen'); /* => is not undefined, yay! */
Так что теперь я хотел сделать то же самое для материала для выбора даты.
/* lets build the view */
v = new MyBackboneView();
v.render();
v.onRender();
/* now lets grab a input text field that I expect to be a datepicker now */
input = $(':input[name="start_date"]', v.el);
/* now I check for the datepicker function on the element */
$(input).data('datepicker'); /* => is undefined :-( */
Так что я не могу проверить поиск даты таким образом. Но вот чего я не понимаю.
Если я загружаю страницу в браузере и делаю то же самое, что и выше, с элементом, отображаемым в браузере (не только на консоли), я вижу нужный объект при проверке на наличие
$(input).data('datepicker');
Итак, в основном, когда вид отображается в браузере:
/* lets grab a input text field that I expect to be a datepicker now */
input = $(':input[name="start_date"]');
/* now I check for the datepicker function on the element */
$(input).data('datepicker'); /* => is defined :-O */
Может кто-то объяснить это мне? Я не могу видеть сквозь это. И, кроме того. Есть ли лучший способ проверить использование средства выбора даты на элементе в консоли (или в модульном тесте)?