2012-05-25 26 views
8

Dưới đây là một cái nhìn đơn giản mà tôi muốn nhanh chóng:của router Lỗi: [Ext.createByAlias] Không thể tạo một thể hiện của bí danh không được công nhận: widget

Ext.define('myapp.view.Home',{ 
    extend 'Ext.Panel', 
    xtype : 'testpanel' , 
    config: { 
     title:'home', 
     iconCls:'home', 
     cls : 'home', 
     html: [ 
      '<h1> Hello Guys </h1>', 
      '<p> some text goes here </p>' 
     ].join("") 
    } 
}); 

tôi đã thêm vào chế độ xem để điều khiển của tôi như sau:

Ext.define('myapp.controller.Main', { 
    extend : 'Ext.app.Controller', 
    views : ['Home'], 
    ... 
} 

tôi đã sử dụng xtype trong ứng dụng của tôi như sau:

items:[{ 
    xtype : 'testpanel' 
}, 

tôi vẫn nhận được lỗi này:

Uncaught Error: [Ext.createByAlias] Cannot create an instance of unrecognized alias: widget.testpanel

Tôi đánh giá cao sự trợ giúp của bạn.

+1

1. không gian tên của bạn phải bắt đầu bằng chữ hoa. 2. sử dụng bí danh: 'widget.x'. 3. đảm bảo rằng tệp thực sự được bao gồm (bạn có thấy nó trong Firebug không?) –

Trả lời

15

Tôi nghĩ bạn đã quên thêm chế độ xem này trong app.js - mảng "lượt xem" của Ext.Application. Hãy kiểm tra.

3

Bạn cần sử dụng thuộc tính bí danh, với tiền tố widget.

Ext.define('myapp.view.Home',{ 
    extend 'Ext.Panel', 
    alias : 'widget.testpanel' , 
    config: { 
     title:'home', 
     iconCls:'home', 
     cls : 'home', 
     html: [ 
      '<h1> Hello Guys </h1>', 
      '<p> some text goes here </p>' 
     ].join("") 
    } 
}); 
+3

tôi nghĩ bạn có thể sử dụng thuộc tính bí danh hoặc xtype, tôi đã thử cả hai và họ đã nêu cùng một lỗi – user1203861

4

Có thể khắc phục bằng cách thêm điều này không?

requires:[ 
    'myapp.view.Home' 
] 
+0

+1 .. vâng, điểm tốt! Bất cứ khi nào bạn đang tạo một thể hiện lười biếng của một đối tượng bằng cách sử dụng xtype trong một mảng các mục, cùng một lớp đó phải có tên đầy đủ của lớp xác định xtype đó. – MacGyver

1

tôi nghĩ bạn cần kiểm tra xem tệp có nằm trong đúng thư mục hay không.

http://docs.sencha.com/ext-js/4-1/#!/guide/application_architecture

Đây u có thể tìm refs để hiểu những gì có thể là sai.

Kiểm tra xem đối tượng myapp.view.Home là trong ứng dụng thư mục/xem/Home.js

alias phải như bí danh: 'widget.testpanel'

và một yêu cầu: [ 'myapp. view.Home '],

thậm chí bạn có thể đăng tệp app.js không?

1

Tôi nhận ngoại lệ này khi giá trị cấu hình/thuộc tính xtype (của cá thể thành phần/đối tượng được tạo) không khớp với tên thực tế của cấu hình xtype của lớp xtype config/property value. Trường hợp cá thể là việc thực hiện lười biếng của một thành phần bên trong cấu hình các thành phần cha của nó.

-1

Bạn có thể khắc phục bằng cách thêm lớp bộ điều khiển trong chế độ xem.

bộ điều khiển: 'ControllerClass',

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