2015-10-11 2 views
1

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

У меня есть родительское представление, которое имеет tabpanel в качестве дочернего элемента:

Ext.define('InventoryDemo.view.main.Main', { 
    extend: 'Ext.panel.Panel', 
    xtype: 'app-main', 

    requires: [ 
     'Ext.plugin.Viewport', 
     'InventoryDemo.view.brand.Brand' 
    ], 

    title: '<h1>Inventory Demo</h1>', 
    layout: 'border', 

    items:[ 
     { 
      ... 
     }, 
     // This is the tab panel that I'm trying to add the container class to 
     { 
      xtype: 'tabpanel', 
      title: 'Inventories', 
      header: false, 
      region: 'center', 
      reference: 'inventoryTabSet' 
     } 
    ] 
}); 

И это мнение я пытаюсь добавить в закладки на вкладке панели:

Ext.define("InventoryDemo.view.inventory.list.Inventory",{ 
    extend: "Ext.container.Container", 
    xtype: 'inventory', 

    ... 

    closable: true, 
    layout:{ 
     type: 'hbox', 
     align: 'stretch' 
    }, 
    items:[ 
     { 
      xtype: 'grid', 
      bind:{ 
       store: '{inventory}' 
      }, 

      listeners:{ 
       itemclick: 'showDetails' 
      }, 

      columns:[ 
       { text: 'Name', dataIndex: 'name', flex: 1 }, 
       { text: 'Price', dataIndex: 'price' }, 
       { text: 'Active', dataIndex: 'active' }, 
      ] 
     } 
    ] 
}); 

Это работает, если я не включают в себя макет конфигурации:

layout:{ 
     type: 'hbox', 
     align: 'stretch' 
    }, 

Если что осталось из, вид нагрузки без проблем, но когда я inclu тип hbox, который я запускаю сбой.

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

[E] Layout run failedlog @ ext-all-rtl-debug.js?_dc=1444523987794:8732logx @ ext-all-rtl-debug.js?_dc=1444523987794:8768Ext.apply.log.log.error @ ext-all-rtl-debug.js?_dc=1444523987794:8771Ext.define.handleFailure @ ext-all-rtl-debug.js?_dc=1444523987794:214144Ext.define.runComplete @ ext-all-rtl-debug.js?_dc=1444523987794:214616callOverrideParent @ ext-all-rtl-debug.js?_dc=1444523987794:1348Ext.Base.Base.addMembers.callParent @ ext-all-rtl-debug.js?_dc=1444523987794:11711Ext.override.runComplete @ ext-all-rtl-debug.js?_dc=1444523987794:61413Ext.define.run @ ext-all-rtl-debug.js?_dc=1444523987794:214610Ext.define.statics.flushLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:61421Ext.define.statics.resumeLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:61436Ext.resumeLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:66954Ext.define.notify @ ext-all-rtl-debug.js?_dc=1444523987794:92658Ext.define.onTick @ ext-all-rtl-debug.js?_dc=1444523987794:92677(anonymous function) @ ext-all-rtl-debug.js?_dc=1444523987794:6416(anonymous function) @ ext-all-rtl-debug.js?_dc=1444523987794:6606 3ext-all-rtl-debug.js?_dc=1444523987794:8732 [E] Layout run failedlog @ ext-all-rtl-debug.js?_dc=1444523987794:8732logx @ ext-all-rtl-debug.js?_dc=1444523987794:8768Ext.apply.log.log.error @ ext-all-rtl-debug.js?_dc=1444523987794:8771Ext.define.handleFailure @ ext-all-rtl-debug.js?_dc=1444523987794:214144Ext.define.runComplete @ ext-all-rtl-debug.js?_dc=1444523987794:214616callOverrideParent @ ext-all-rtl-debug.js?_dc=1444523987794:1348Ext.Base.Base.addMembers.callParent @ ext-all-rtl-debug.js?_dc=1444523987794:11711Ext.override.runComplete @ ext-all-rtl-debug.js?_dc=1444523987794:61413Ext.define.run @ ext-all-rtl-debug.js?_dc=1444523987794:214610Ext.define.statics.flushLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:61421Ext.define.statics.resumeLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:61436Ext.resumeLayouts @ ext-all-rtl-debug.js?_dc=1444523987794:66954privates.statics.notify @ ext-all-rtl-debug.js?_dc=1444523987794:116731privates.statics.onTimer @ ext-all-rtl-debug.js?_dc=1444523987794:116750Ext.Function.fireHandlers @ ext-all-rtl-debug.js?_dc=1444523987794:6303

Есть ли что-то о том, как у меня есть мнение, установленное на что приведет к ошибка при попытке использовать любой тип макета, отличный от значения по умолчанию?

+0

Рассмотрим, почему вы используете 'HBOX layout'. Когда у вас есть только один элемент 'hbox', он не нужен. По умолчанию это 'layout: fit' Я предполагаю, что этого будет достаточно, чтобы растянуть сетку до максимума. Но да, если требуется «hbox», то ответ @ Navaneeth-Kesavan правильный. – Tarabass

+0

Вышеуказанное право на точку. Зачем вам использовать коробку? –

+0

Я использую hbox здесь, потому что, когда вы щелкаете по строке в сетке, я добавляю панель формы деталей справа с выбранной загруженной записью. –

ответ

4

При планировке контейнера установлено значение hbox, ожидается, что дети этого контейнера должны иметь flex или width. Если вы укажете flex или width для grid, вы не столкнетесь с ошибкой прогона макета.

Вот скрипку для вас: https://fiddle.sencha.com/#fiddle/v9a

+0

Ницца, спасибо! Это выполнило свою работу. –

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