다음은 jquery UI에서 jquery datepicker 및 i18n이 포함되어 있으며 사용자 정의 속성이 작성된 코드입니다. datepicker가 작동하고 달력을 표시하지만 로캘을 프랑스어로 변경하지 않습니다. jquery UI i18n 폴더의 로켈 파일을 포함해야하는 다른 방법이 있습니까?aurelia에서 JQuery UI datepicker를 사용하여 로케일을 변경하는 방법은 무엇입니까?
import $ from "jquery";
import {datepicker} from "components-jqueryui";
import {EventAggregator} from "aurelia-event-aggregator";
import {inject, customAttribute} from "aurelia-framework";
import {i18n} from "components-jqueryui";
@customAttribute("datepicker")
@inject(Element, EventAggregator)
export class DatePicker {
constructor(element, eventAggregator) {
this.element = element;
// Handle to Aurelia pub/sub events
this.eventAggregator = eventAggregator;
}
attached() {
$(this.element).datepicker($.datepicker.regional["fr"]);
// $.datepicker.setDefaults(
// $.extend($.datepicker.regional["fr"])
//);
$(this.element).datepicker({dateFormat: "yy-mm-dd", onClose: function fct() { this.focus(); }})
.on("change", e => fireEvent(e.target, "input"));
this.eventAggregator.subscribe("event:locale:changed", (locale) => {
$(this.element).datepicker($.datepicker.regional["fr"]);
// $.datepicker.setDefaults(
// $.extend($.datepicker.regional["fr"])
//);
});
}
detached() {
$(this.element).datepicker("destroy")
.off("change");
}
}
function createEvent(name) {
let event = document.createEvent("Event");
event.initEvent(name, true, true);
return event;
}
function fireEvent(element, name) {
let event = createEvent(name);
element.dispatchEvent(event);
}
로케일은 _set_하지만 _changing_하지 않습니다. 즉, 구성 요소를 다시 작성합니다. – balazska