1

Sencha Architectでxtypeを変更するにはどうすればよいですか?

例:

から:

xtype: 'list'

xtype: 'RefreshableList'

4

2 に答える 2

6

免責事項として、私は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クラスをロードする必要があります。

于 2012-10-17T00:54:38.727 に答える
1

リストクラスを拡張して独自のクラスを作成し、それに独自のウィジェットエイリアスを指定する必要があります。このチュートリアルには必要なものがすべて揃っています: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();
    }
});
于 2012-10-03T01:36:17.047 に答える