2011-05-24 5 views
1

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

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

Если я закомментировать ViewOrders из списка ниже он работает отлично, но если он там, то я получаю следующее сообщение об ошибке:

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()'); 
    } 
}); 

Здесь is my 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); 
    } 
}); 

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

ответ

5

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

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