0

このように定義された参照を持つコントローラーがあります:

refs : { title_Bar : '#title_Bar'},

メイン ビューに itemId を title_Bar に設定したタイトル バーが 1 つしかない場合、問題なく動作しました。

同じアイテム ID を持つ 2 つのタイトル バーがあるので、1 つだけが更新されているように見えますか?

それはそのようになっているのでしょうか、それとも何が間違っているのでしょうか?

4

2 に答える 2

1

問題は、セレクターが十分に具体的でないことです。

itemId は特定のコンポーネント内で一意であり、ここではセレクターで指定しません。id はアプリケーション全体で一意です (ただし、誤って 2 回使用することがあるため、慎重に使用することをお勧めします。Sencha はこの id を使用して html をレンダリングし、あなたの id を html タグの id として使用するため、悪いことです。したがって、 2 回指定すると、2 つのコンポーネントのうちの 1 つがレンダリングされません。

解決策: 2 つの異なるページが定義されている場合 (それぞれに 1 つのタイトル バーがある場合、次のようになります。

Ext.define('MyApp.view.page1', {
    extend: 'Ext.Container',
    xtype: 'page1',
    items: [
        {
            xtype: 'container',
            itemId: 'title_bar'
        }
    ]
    ....
});

Ext.define('MyApp.view.page2', {
    extend: 'Ext.Container',
    xtype: 'page2',
    items: [
        {
            xtype: 'container',
            itemId: 'title_bar'
        }
    ]
    ....
});

これにより、次のセレクターを使用してバーのタイトルにアクセスできるようになりました。

refs: {
    barOne: 'page1 #title_bar',
    barTwo: 'page1 #title_bar'
}

もちろん、itemIdをネストして、ここでさらに読むことができます

于 2013-08-13T12:22:35.267 に答える