1

xtypeを使用して別のアイテムに追加するときに、カスタムビューを作成し、値を渡そうとしています。ストアなどを使用する必要がないため、単純に見えます。静的な値ですが、達成できません:(

私の考えは、これをコンポーネント(カスタムコンポーネントの親)に配置することです。

...
items: [{
    xtype: 'myNewComponent',
    car: 'Renault'
}]
...

そして、私のカスタムコンポーネントで値を取得します。

Ext.define('myNewComponent', {
    extend: 'Ext.Panel',
    xtype: 'myNewComponent',
    config: {
        items: [{
            html: 'This is my car: ' + this.config.car
        }]
    }
});

私は何かを理解していないと思います、あなたは私を助けてくれませんか?

ありがとう!

4

1 に答える 1

1

あなたがする必要がある2つのことがあります。

まず、カスタムコンポーネントに新しい構成を作成する必要があります。configこれを行うのは、クラスのオブジェクトに追加するのと同じくらい簡単です。

Ext.define('myNewComponent', {
    extend: 'Ext.Panel',
    xtype: 'myNewComponent',
    config: {
        car: null
    }
});

nullこれは、コンポーネントの作成時に変更しない場合のデフォルト値にすぎません。

次に、この新しい構成を使用します。this.config.carのスコープはDOMウィンドウであるため、実行したことは機能しません。クラスの関数を使用してアイテムを作成する必要があります。updateCarこれは、新しい構成の新しいメソッドを使用して実現できますcar。このメソッドは、その構成を更新するたびに呼び出されます。あなたの場合、それはあなたが最初にあなたのカスタムコンポーネントを作成するときです。

Ext.define('myNewComponent', {
    ...

    updateCar: function(newCar) {
        this.add({
            html: 'This is my car: ' + newCar
        });
    }
});

構成システムの仕組みについて詳しくは、http://docs.sencha.com/touch/2-1/# !/ guide/class_systemをご覧ください。

于 2013-01-23T20:46:20.187 に答える