2011-08-19 34 views
5

Vì vậy, int ExtJS ta có:gì alternateClassNames được dành cho

  • "thật" type name (mà một mà đi như param đầu tiên trong Ext.define)
  • alias
  • alternateClassName
  • xtype

Điều bí ẩn nhất đối với tôi là alternateClassName. Tại sao chúng ta thực sự cần chúng nếu chúng ta đã có một sở thú loại mô tả? Lưu ý rằng tôi không cố gắng thảo luận về chất lượng của cách tiếp cận ý thức hệ. Câu hỏi đặt ra chỉ là lý do tại sao điều này được thực hiện và cho mục đích chính xác.

Trả lời

8

Họ đang sử dụng để tương thích ngược. Ví dụ: Ext.grid.Panel trong ExtJS 4 có

alternateClassName: ['Ext.list.ListView', 'Ext.ListView', 'Ext.grid.GridPanel'] 

vì nó thay thế ListView và được sử dụng để đặt tên là Ext.grid.GridPanel.

2

Theo tôi biết alternateClassName hữu ích khi gọi một lớp với tên khác và chúng tôi có thể sử dụng các hành động theo tên lớp.

Mã dưới đây sẽ rất hữu ích cho bạn:

Ext.define('Sample', {  
    alternateClassName: ['Example', 'Important'],  
    code: function(msg) {   
     alert('Sample for alternateClassName... ' + msg);  
    }, 
    renderTo :document.body 
}); 
var hi = Ext.create('Sample'); 
hi.code('Sample'); 
var hello = Ext.create('Example'); 
hello.code('Example'); 
var imp = Ext.create('Important'); 
imp.code('Important'); 

Trong đoạn mã trên, bạn có thể tìm thấy những thứ như:

1.We đang sử dụng ba tên gọi Mẫu, Ví dụ, quan trọng cho một lớp.
2.Chúng tôi có thể sử dụng hành động tức là thông báo cảnh báo theo tên lớp.
3.Chúng tôi đang hiển thị thông điệp cảnh báo dựa trên tên lớp. Chúng tôi đang hiển thị thông báo cảnh báo để hiển thị kết quả. Nhưng chúng tôi có thể viết một số hành động theo tên lớp như, nếu chúng tôi muốn tạo một nút và chúng tôi cần phải viết hành động trên nút theo tên lớp thì điều này sẽ hữu ích.

Bạn có thể FINT mẫu làm việc dưới đây:

http://jsfiddle.net/kesamkiran/kVbra/30/

+0

thực sự, bạn đang giải thích cách hoạt động từ điểm kỹ thuật, nhưng không giải thích, tại sao chúng ta nên có tên N của cùng lớp. – shabunc

+0

Bạn có thể sử dụng lại mã theo mong muốn của mình.Theo tôi biết, Ví dụ: nếu thanh công cụ và một nút có trong hai tab, nhưng tôi cần phải viết nút nhấp vào eent dựa trên tab đang hoạt động. Lúc đó chúng tôi có thể sử dụng phương pháp này. – Unknown

+0

câu trả lời trễ nhưng alternateClassName có thể được sử dụng để trỏ đến các hàm singleton, viết tắt, vì vậy bạn không phải trỏ đến đường dẫn là các trình đơn được định nghĩa rút ngắn lời gọi hàm – Chris

0

alias

Một bí danh bao gồm một không gian tên và một tên nối bởi một giai đoạn như [namespace]. [Name]

Bởi vì không gian tên, sử dụng của nó bị hạn chế đến bối cảnh, ví dụ tiện ích, cửa hàng, bộ điều khiển, v.v. (ví dụ: đối với lớp điều khiển có nguồn gốc, bạn có thể sử dụng bí danh như "controller.foo" và bây giờ bạn có thể chỉ sử dụng tên "foo" khi gắn bộ điều khiển vào chế độ xem)

xtype

Chỉ áp dụng cho Ext.lớp thành phần có nguồn gốc

hữu ích khi xác định quan điểm vì bạn viết mã ít hơn

alternateClassName

mục đích tổng quát hơn trên hai. bạn có thể sử dụng điều này cho các lớp tiện ích của mình, do đó bạn không phải tham chiếu toàn bộ không gian tên

Đối với một lớp đơn được sử dụng để lưu trữ các hằng số được khai báo là app.util.navigationConstants, bạn có thể xác định tên lớp thay thế ngắn hơn, NavConsts. Và bây giờ bạn có thể sử dụng NavConsts.CONST_NAME thay vì app.util.navigationConstants.CONST_NAME

Các vấn đề liên quan