以下は、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