Sencha Architectでxtypeを変更するにはどうすればよいですか?
例:
から:
xtype: 'list'
に
xtype: 'RefreshableList'
Sencha Architectでxtypeを変更するにはどうすればよいですか?
例:
から:
xtype: 'list'
に
xtype: 'RefreshableList'
免責事項として、私はSenchaArchitect製品のリードエンジニアの1人です。
リストをトップレベルのコンポーネントとしてドラッグします。すべてのトップレベルコンポーネントは独自のクラスです。userAlias
およびuserClassName
構成を「refreshablelist」や「RefreshableList」などの値に設定します。このために生成されたコードを見てください。
パネルをトップレベルのコンポーネントとしてドラッグし、インスペクターの既存のRefreshableListを新しいパネルにドラッグします。リストを移動、コピー、またはリンクするかどうかを尋ねるプロンプトが表示されたら、[リンク]を選択します。これにより、サブクラスRefreshableListのインスタンスが作成されます。
これは現在、アーキテクト内でこのタスクを実行するための最良の方法です。Architectの外部でRefreshableListコンポーネントを構築し、それをプロセスでリンクしたい場合は、少し異なります。オーバーライドを作成し、そこでインスタンス化するxtypeを変更する必要があります。SenchaArchitect2.2でこの制限に対処しようとしています。現在何と呼んでいるのかを指定することができますcreateAlias
。これは、作成するエイリアス(xtype、ptype、typeなど)です。
たとえば、パネルをドラッグしてその中にリストを配置した場合、インスペクターでリストを選択し、createAlias
「RefreshableList」に構成できます。これにより、生成されたコードのxtypeが「list」から「RefreshableList」に置き換えられます。Architect内のキャンバスにレンダリングされるものは変更されません。JSリソースおよび/または動的ローダー/requires機能を介してRefreshableListクラスをロードする必要があります。
リストクラスを拡張して独自のクラスを作成し、それに独自のウィジェットエイリアスを指定する必要があります。このチュートリアルには必要なものがすべて揃っています:http ://www.sencha.com/learn/how-to-use-classes-in-sencha-touch-2/
アップデート
これが非常に基本的なカスタムリストのコードです
//this follows the MVC structure, if you wanted you could also do something like ux.RefreshableList
Ext.define('myAppName.view.RefreshableList', {
extend: 'Ext.dataview.List',
xtype: 'RefreshableList',
config: {
fullscreen: true,
itemTpl: '{title}',
data: [
{ title: 'Item 1' },
{ title: 'Item 2' },
{ title: 'Item 3' },
{ title: 'Item 4' }
]
},
initialize: function() {
this.callParent();
}
});