2016-08-07 4 views
1

У меня есть пользовательский атрибут «DatePicker», говорящее оAurelia Webpack DatePicker не является функцией

TypeError: $(...).datepicker is not a function 

Я использую скелет-машинопись-Webpack в моей отправной точкой.

datepicker.ts

import {inject, autoinject, customAttribute, DOM} from "aurelia-framework"; 
import moment from "moment"; 

import "jquery"; 
import "jquery-ui"; 

@customAttribute("datepicker") 
@inject(DOM.Element) 
export class JqueryUiDatePicker { 
    constructor(private element: Element) { 
    moment().format(); 
    } 

    attached() { 
     $(this.element) 
      .datepicker({dateFormat: "DD/MM/YYYY"}) 
      .on("change", e => this.fireEvent((e.target) as Element, "input")); 
    } 

    detached() { 
     $(this.element) 
      .datepicker("destroy") 
      .off("change"); 
    } 

    private fireEvent(element: Element, name: string): void { 
     const event = this.createEvent(name); 
     this.element.dispatchEvent(event); 
    } 

    private createEvent(name: string): Event { 
     const event = document.createEvent("Event"); 
     event.initEvent(name, true, true); 
     return event; 
    } 
} 

разметки

<input class="form-control" id="orderDate" datepicker placeholder="Order Date" type="text" value.bind="model.orderDate | dateFormat: 'DD/MM/YYYY'"> 

Он используется для работы, когда Аурелия была в бета-версии, но после того, как я обновил свой код с последними каркасно typcript-webpack, он перестает работать.

ответ

0

Пробег: import $ from 'jquery';.

Вот блог взаимосвязанного например: http://davismj.me/blog/semantic-custom-element/

+0

я до сих пор получил подобную ошибку «Необработанное отказ TypeError: (0, _jquery2.default) (.. .) datepicker не является функцией ". В бета-версии webpack.config я не помню, чтобы добавлять jqueryui туда, чтобы заставить его работать. Для Aurelia 1.0 webpack.config я вижу, что есть ссылка на config-global-jquery. Должен ли я делать что-то подобное для jqueryui? – Retard

0

Я использую помощницу C (с машинописью) ... так YMMV; но следующий импорт работал для меня

import * as $ from 'jquery' 

да, вам нужно импортировать JQuery-UI, а

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