このように定義された参照を持つコントローラーがあります:
refs : { title_Bar : '#title_Bar'},
メイン ビューに itemId を title_Bar に設定したタイトル バーが 1 つしかない場合、問題なく動作しました。
同じアイテム ID を持つ 2 つのタイトル バーがあるので、1 つだけが更新されているように見えますか?
それはそのようになっているのでしょうか、それとも何が間違っているのでしょうか?
このように定義された参照を持つコントローラーがあります:
refs : { title_Bar : '#title_Bar'},
メイン ビューに itemId を title_Bar に設定したタイトル バーが 1 つしかない場合、問題なく動作しました。
同じアイテム ID を持つ 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をネストして、ここでさらに読むことができます