2011-05-06 3 views
0

ExtJS 4가 사용하고있는 새로운 MVC 아키텍처를 배우려하고 있는데 심각한 문제가 있습니다.Ext.Load에 대한 문제가 필요한 파일을 찾지 못함

ext-all-debug.js:3713[Ext.Loader] Synchronously loading 'Exercise.controller.Users'; consider adding Ext.require('Exercise.controller.Users') above Ext.onReady 
ext-all-debug.js:4757An uncaught error was raised with the following data: 
ext-all-debug.js:4758 
Object 
ext-all-debug.js:4764Ext.Loader is not enabled, so dependencies cannot be resolved dynamically. Missing required class: Exercise.controller.Users 
ext-all-debug.js:4771Uncaught Error 

그리고 여기 내 코드의 고장이다 :

index.php를

<html> 
    <head> 
     <title></title> 
     <style> 
      @import url('libraries/extjs/resources/css/ext-all.css'); 
     </style> 
     <script src = "libraries/extjs/bootstrap.js"></script> 
     <!-- 
     <script src = "public/app/controller/Users.js"></script> 
     --> 
     <script src = "public/app/app.js"></script> 
     <script> 
     </script> 
    </head> 
    <body> 

    </body> 
</html> 

지금, 내가 아는 내가 (크롬 JS 콘솔) 페이지를로드 할 때 여기에 내가 무엇을 얻을 포함 된 컨트롤러 스크립트가 주석 처리되었음을 나타냅니다. 컨트롤러를 명시 적으로 포함 시키면이 메시지가 사라집니다. Ext.loader가 필자에게 필요한 파일을 로딩한다고 가정했기 때문에 내가 이것에 대해 묻는 이유가 있습니다.

사용자의 컨트롤러

Ext.define('Exercise.controller.Users', { 
    extend: 'Ext.app.Controller', 
    init: function() { 
     console.log('Initialized Users! This happens before the Application launch function is called'); 
    } 
}); 

[사용자 모델

Ext.define('Exercise.model.User', { 
    extend: 'Ext.data.Model', 
    fields: [{ 
     name: 'id', 
     type: 'int' 
    }, { 
     name: 'created_at', 
     type: 'date', 
     dateFormat: 'Y-m-d H:i:s' 
    }, { 
     name: 'member_id', 
     type: 'int' 
    }, { 
     name: 'first_name', 
     type: 'string' 
    }, { 
     name: 'last_name', 
     type: 'string' 
    }, { 
     name: 'password', 
     type: 'string' 
    }, { 
     name: 'dob', 
     type: 'date', 
     dateFormat: 'Y-m-d' 
    }, { 
     name: 'email_address', 
     type: 'string' 
    }, { 
     name: 'is_active', 
     type: 'int' 
    }], 
    proxy: { 
     type: 'ajax', 
     format: 'json', 
     url: '../../_dev/json_fixtures/users.json', 
     reader: { 
      type: 'json', 
      root: 'users' 
     }, 
     root: 'users' 
    } 
}); 

사용자보기를

Exercise.views.user.list = Ext.extend(Ext.grid.Panel, { 
    store: Exercise.stores.users, 
    renderTo: Ext.getBody(), 
    columns:[{ 
     header: 'Member ID', 
     dataIndex: 'member_id' 
    }, { 
     header: 'First Name', 
     dataIndex: 'first_name' 
    }, { 
     header: 'Last Name', 
     dataIndex: 'last_name' 
    }], 
    initComponent: function() { 
     Exercise.stores.users.load(); 
     Exercise.views.UsersList.superclass.initComponent.apply(this, arguments); 
    } 
}); 

app.js는

Ext.application({ 
    name: 'Exercise', 
    autoCreateViewport: true, 
    appFolder: 'app', 

    controllers: [ 
     'Users' 
    ], 
    launch: function() { 
     Ext.create('Ext.container.Viewport', { 
      layout: 'fit', 
      items: [ 
        { 
        xtype: 'panel', 
        title: 'Users', 
        html : 'List of users will go here' 
       } 
      ] 
     }); 
    } 
}); 

사이드 노트 파일 : 나는 솔루션은 아무 소용 here을 발견 시도하고 난 둘 ../app 그냥 app에 내 앱에 appFolder 속성을 설정하려고했습니다.

감사합니다.

답변

2

는 나도 그 오류가 발생했습니다. Ext 4.0 MVC 시스템은 bootstrap.js를 사용하지 않고 대신 ext-debug.js를 사용합니다. 프로덕션 환경으로 이동할 준비가되면 컴파일 단계에서 ext-debug.js를 대체하게됩니다.

귀하의 HTML 파일은 다음과 같아야합니다

<html> 
    <head> 
     <title></title> 
     <style> 
      @import url('libraries/extjs/resources/css/ext-all.css'); 
     </style> 
     <!-- The MVC system needs ext-debug.js, not bootstrap.js --> 
     <script src = "libraries/extjs/ext-debug.js"></script> 
     <script src = "public/app/app.js"></script> 
     <script> 
     </script> 
    </head> 
    <body> 

    </body> 
</html> 
관련 문제