Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Extjs 5 + SearchField.js (https://javascript.ru/forum/extjs/49788-extjs-5-searchfield-js.html)

treasury 28.08.2014 12:31

Extjs 5 + SearchField.js
 
Пробую прикрутить плагин http://dev.sencha.com/ext/5.0.1/exam...SearchField.js
Ввожу в строку поиска нажимаю поиск срабатывает лоадер и ничего не происходит, ошибка в консоли



Фрагмент кода панели, где размещено поле поиска
Ext.define('MyApp.view.Main', {
    extend: 'Ext.container.Viewport',
    alias: 'widget.main',

    requires: [
        'MyApp.view.MainViewModel',
        'MyApp.view.MainViewController',
        'Ext.view.View',
        'Ext.XTemplate',
        'Ext.form.Panel',
        'Ext.form.FieldSet',
        'Ext.form.field.Date',
        'Ext.form.field.Time',
        'Ext.button.Button',
        'Ext.toolbar.Toolbar',
        'Ext.toolbar.TextItem'
    ],

    controller: 'main',
    viewModel: {
        type: 'main'
    },
    reference: 'main',
    itemId: 'myviewport',
    layout: 'border',
    defaultListenerScope: true,

    items: [
        {
            xtype: 'panel',
            region: 'west',
            split: true,
            splitterResize: false,
            reference: 'leftPanel',
            autoScroll: true,
            itemId: 'mypanel',
            width: 270,
            collapsed: false,
            collapsible: true,
            title: 'OvAgro',
            titleCollapse: false,
            items: [
                {
                    xtype: 'dataview',
                    autoScroll: true,
                    margin: '10 0 10 10',
                    disableSelection: false,
                    itemSelector: 'div',
                    itemTpl: [
                        '<table>',
                        '   <tr>',
                        '       <td width=\'200px\'><input type="checkbox" enabled="enabled" value="open" name="comment_status" <tpl if="active">checked="checked"</tpl> /><img src="http://{host}/avl_icon/get/{id}/18/any.png">{nm}</td>',
                        '       <td class="configure"></td>',
                        '   </tr>    ',
                        '       </table>',
                        '   '
                    ],
                    store: 'Object',
                    listeners: {
                        itemclick: {
                            fn: 'onDataviewSelectConfigure',
                            single: false
                        },
                        select: 'onDataviewSelect'
                    }
                },
                {
                    xtype: 'form',
                    bodyPadding: 10,
                    title: 'Отчет',
                    items: [
                        {
                            xtype: 'fieldset',
                            title: 'От',
                            items: [
                                {
                                    xtype: 'datefield',
                                    anchor: '100%',
                                    fieldLabel: 'Дата'
                                },
                                {
                                    xtype: 'timefield',
                                    anchor: '100%',
                                    fieldLabel: 'Время',
                                    format: 'H:i',
                                    increment: 1,
                                    maxValue: '23:59',
                                    minValue: '00:00'
                                }
                            ]
                        },
                        {
                            xtype: 'fieldset',
                            title: 'До',
                            items: [
                                {
                                    xtype: 'datefield',
                                    anchor: '100%',
                                    fieldLabel: 'Дата'
                                },
                                {
                                    xtype: 'timefield',
                                    anchor: '100%',
                                    fieldLabel: 'Время',
                                    format: 'H:i',
                                    increment: 1,
                                    maxValue: '23:59',
                                    minValue: '00:00'
                                }
                            ]
                        },
                        {
                            xtype: 'button',
                            itemId: 'executeRep',
                            margin: '0 0 0 70',
                            text: 'Сформировать'
                        }
                    ]
                }
            ],
            dockedItems: [
                {
                    xtype: 'searchfield',
                    store: 'Object',
                    dock: 'top'

                }
            ]
        }


Если еще что-то нужно по коду говорите, буду выкладывать.
Возможно еще какие-нибудь параметры нужно указать для поля поиска? Спасибо!

treasury 28.08.2014 12:40


Raydezm 28.08.2014 23:54

Предположу...

Строка 058
store: Ext.data.StoreManager.lookup('Object')


И подробнее почитать примеры http://docs.sencha.com/extjs/5.0/api...View-cfg-store

treasury 29.08.2014 10:34

Цитата:

Сообщение от Raydezm (Сообщение 328016)
Предположу...

Строка 058
store: Ext.data.StoreManager.lookup('Object')


И подробнее почитать примеры http://docs.sencha.com/extjs/5.0/api...View-cfg-store

если указываю в 58 строке store через эту конструкцию, у меня ничего не выводится в dataview. Но при поиске ошибка в консоле такая же как выше.

VitalikSanich 29.08.2014 20:18

Страница http://localhost/MyApp.model.Object не найдена.. "Копать" в сторону связи сторе с сервером. Нет?
P.S.: "Object" -- на мой взгляд не очень удачный вариант назвать сторе

treasury 01.09.2014 12:58

Код создания store:
Ext.define('MyApp.store.Object', {
    extend: 'Ext.data.Store',

    requires: [
        'MyApp.model.Object'
    ],

    constructor: function(cfg) {
        var me = this;
        cfg = cfg || {};
        me.callParent([Ext.apply({
            storeId: 'Object',
            batchUpdateMode: 'complete',
            model: 'MyApp.model.Object'
        }, cfg)]);
    }
});

Есть еще идеи, вопрос актуален!

skrudjmakdak 01.09.2014 15:30

requires: [
        'MyApp.model.Object'
    ],

как вариант: ты подключаешь model но модель видимо не грузится, т.к. ее нет

treasury 01.09.2014 16:13

Цитата:

Сообщение от skrudjmakdak (Сообщение 328430)
requires: [
        'MyApp.model.Object'
    ],

как вариант: ты подключаешь model но модель видимо не грузится, т.к. ее нет

Код модели:
Ext.define('MyApp.model.Object', {
    extend: 'Ext.data.Model',

    requires: [
        'Ext.data.field.Integer',
        'Ext.data.field.String'
    ],

    fields: [
        {
            type: 'int',
            name: 'id',
            unique: true
        },
        {
            type: 'string',
            name: 'nm'
        }
    ]
});

skrudjmakdak 01.09.2014 16:19

хотя у тебя как то странно.. если бы модели не было, он тебе может и твою app не инициализировал (но не факт).

просто у тебя и модель грузится по адресу MyApp.model.Object и смотря на консоль в твоей ошибки и данные тянутся по тому же адресу. т.е. еще как вариант у тебя идет запрос на получение данных, а урла по которой ты хочешь получить эти данные не рабочая

skrudjmakdak 01.09.2014 16:20

Цитата:

Сообщение от treasury (Сообщение 328438)
Код модели:

это как раз таки код сторы, но не модели
код модели начинается так:
Ext.define(\'MyApp.model.Object\', {


Часовой пояс GMT +3, время: 21:10.