2012-03-14 32 views
6

Tôi muốn tạo ra một đối tượng singleton trong Ext JS 4.singleton trong ExtJs4

Đây là mã của tôi:

Ext.define('AM.model.Test', { 
    extend : 'Ext.util.Observable', 
    singleton : true, 
    foo : function() { 
     console.log('log 1'); 
    }, 
    constructor : function() { 

    } 
}); 

Tôi gọi nó với:

AM.model.Test.foo(); 

Tất cả đều hoạt động tốt miễn là tôi xác định vị trí trong app.js. Khi tôi cố gắng di chuyển định nghĩa này sang 'app \ model \ Test.js' Tôi nhận được lỗi này:

AM.model.Test is undefined [Break On This Error]
AM.model.Test.foo();

Có gì sai với mã của tôi?

Trả lời

5

Bạn cần thiết lập tải động và yêu cầu lớp học từ nơi bạn định sử dụng.

Ví dụ:

Ext.Loader.setConfig({ 
    enabled: true, 
    paths: { 
     'AM': 'app' 
    } 
}); 

Ext.require('AM.model.Test'); 

Ext.onReady(function() { 
    // now all the required classes are loaded and you can start using them 
    AM.model.Test.foo(); 
}); 
+0

Cảm ơn bạn! Điều này đã giúp. – mik