ExtJS Datefield TypeError j[d] не является функцией

У меня есть сетка в extjs 7.2 с магазином, отфильтрованным по дате. У меня есть дата начала и дата окончания, которые привязаны к объектам даты в моей ViewModel. Когда сетка инициализируется, дата для первого поля (start_date) отображается в поле, но затем программа выдает ошибку типа из поля даты.

Uncaught TypeError: j[d] не является функцией

ExtJS 86

    getErrors
    getErrors
    validateValue
    isValid
    validate
    onChange
    onChange
    checkChange
    setValue
    setValue
    setValue
    setValue
    onBindNotify
    notify
    react
    notify
    notify
    fireItemMutationEvent
    clip
    setViewSize
    onViewResize
    onViewRefresh
    pass
    createSingle
    fire
    doFireEvent
    doFireEvent
    doFireEvent
    fireEventArgs
    fireEvent
    onBoxReady
    afterFirstLayout
    afterFirstLayout
    afterComponentLayout
    afterComponentLayout
    notifyOwner
    callLayout
    flushLayouts
    runComplete
    k
    callParent
    runComplete
    run
    flushLayouts
    resumeLayouts
    resumeLayouts
    setActiveTab
    doActivateTab
    onClick
    fire
    fire
    publish
    publishDelegatedDomEvent
    doDelegatedEvent
    onDelegatedEvent
    addDelegatedListener
    subscribe
    addListener
    addListener
    doAddListener
    doAddListener
    addManagedListener
    addManagedListener
    a
    onRender
    onRender
    finishRender
    finishRenderItems
    finishRender
    finishRenderChildren
    afterRender
    finishRender
    finishRenderItems
    finishRender
    finishRenderChildren
    finishRenderChildren
    afterRender
    finishRender
    finishRenderItems
    finishRender
    finishRenderChildren
    afterRender
    finishRender
    render
    constructor
    ctor
<anonymous> My Project ext-all.js:20:1539234
ExtJS 55
onDelegatedEvent self-hosted:935
ExtJS 31
<anonymous> My Project

Вот класс js для сетки с привязкой:

Ext.define(K.maintenance.classes.grid, {
extend: K.shared.classes.groupedGrid,
controller: K.maintenance.aliases.controller,
viewModel: K.maintenance.aliases.viewmodel,
requires: ['Ext.data.validator.Date'],
xtype: K.maintenance.xtypes.grid,
bind: '{store}',
tbar: {
    xtype:'toolbar',
    items: [
        {
            reference: 'print',
            iconCls:'icons-print',
        },
        '->','Start date : ',
        {
            xtype: 'datefield',
            reference: 'start_date',
            vtype: 'daterange',
            format: 'Y-m-d',
            bind: {
                value: '{startDate}',
                maxDate: '{endDate}'
            },
            validators: 'date'
        },'-','Stop date : ',
        {
            xtype: 'datefield',
            reference: 'stop_date',
            vtype: 'daterange',
            format: 'Y-m-d',
            bind: {
                value: '{endDate}',
                minDate: '{startDate}'
            },
            validators: 'date'
        }
    ] 
},
columns: {...}
viewConfig: {
    forceFit:true,
    scrollToTop: Ext.emptyFn,
    scrollOffset: 19,
    stripeRows: true
},
stateful: false,
stateId: 'tool_maintenance_status',
animCollapse: false,
});

Любая помощь в выяснении причины возникновения этой ошибки будет высоко оценена.


person Jude Quintero    schedule 21.07.2020    source источник
comment
Можете ли вы прикрепить пример на скрипке?   -  person norbeq    schedule 22.07.2020


Ответы (1)


Хотя этот тип ошибки может показаться бесполезным, обычно он указывает на отсутствие чего-то, что ожидает ExtJS.

vtype: daterange из коробки нет. У вас есть пользовательский, который вы где-то реализовали? Если нет, то это может быть виновником.

https://docs.sencha.com/extjs/7.2.0/classic/Ext.form.field.VTypes.html

Другая возможность заключается в том, что конфигурация validators: 'date' работает не так, как вы ожидаете. Я всегда использовал функцию для этого свойства конфигурации. Поля дат уже имеют некоторую встроенную проверку, поэтому использование базового средства проверки даты может быть излишним, если не мешает вам.

person Bart    schedule 22.07.2020