Присоединение нескольких представлений к контроллеру в ExtJS 4 MVC - PullRequest
1 голос
/ 24 мая 2011

Это использует стандартную библиотеку ExtJS 4 MVC и структуру.

Я пытаюсь присоединить несколько представлений к одному контроллеру, чтобы потом можно было создавать их экземпляры для добавления на панели.К сожалению, я получаю ошибки о представлении, когда я добавляю второе, а ExtJS блокирует синтаксические ошибки, которые появляются, так что я не могу увидеть, где проблема.он работает нормально, но если он там, то я получаю следующую ошибку:

An uncaught error was raised with the following data: ext-all-debug-with-comments.js (line 7864)
msg:
"The following classes are not declared even if their files have been loaded:   'PVAL_App.view.ViewOrders'. Please check the source code of their corresponding files for possible typos: 'app/view/ViewOrders.js'"

sourceClass: "Ext.Loader"
sourceMethod: "onFileLoaded"

Вот мой контроллер:

Ext.define('PVAL_App.controller.Viewport', {
    extend: 'Ext.app.Controller',

    views: [
      'Viewport', 'ViewOrders'
    ],

    init: function() {
      console.log('Viewport controller init()');
    }
});

Вот мое представление ViewOrders:

Ext.define('PVAL_APP.view.ViewOrder', {

    /* Begin Definitions */
    extend: 'Ext.panel.Panel',
    alias: 'widget.ViewOrders',

    requires: [
        'Ext.panel.Panel',
        'Ext.data.ArrayStore'
    ],

    border:false,
    layout: 'fit',
    //autoScroll: true,

    initComponent: function() {
    }
});

Я сомневаюсь, что это необходимо, но это мой файл приложения:

Ext.Loader.setConfig(
{
  enabled: true
});
Ext.application({
  name: 'PVAL_App',

  appFolder: 'app',

  autoCreateViewport: true,

  controllers: [
    'PVAL_App', 'Viewport'
  ],

  launch:function() {
    // Nothing yet.
    //console.log(this.controllers);
  }
});

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

1 Ответ

5 голосов
/ 27 мая 2011

Проблема в том, что имя класса в вашем скрипте app / view / ViewOrders.js не совпадает с именем представления. Вместо Ext.define('PVAL_APP.view.ViewOrder', { вам нужно множественное число (и правильный регистр) Ext.define('PVAL_App.view.ViewOrders', {. Либо, что вы можете изменить свое имя файла и сослаться на единственное число и просто исправить дело.

...