Проверка представления основы, если элемент имеет указатель даты

Во-первых: извините за ужасное название темы

У меня есть базовое представление, которое имеет метод 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 */

Может кто-то объяснить это мне? Я не могу видеть сквозь это. И, кроме того. Есть ли лучший способ проверить использование средства выбора даты на элементе в консоли (или в модульном тесте)?

0 ответов

Другие вопросы по тегам