6

基になる TreeStore で NestedList を使用しています。ここで、項目を NestedList にリーフとして追加したいと考えています。これどうやってするの?

現在、私のコード (Controller、onAddButtonTapped) は次のようになっています。

var store = Ext.getStore('menuStore');
var customerAreaNode = store.getRoot().getChildAt(1);  
customerAreaNode.appendChild({name: "text", leaf:true});
customerAreaNode.expand();
store.sync();

このコードにより、リーフ レベル (正しいノードの背後) に 2 つの新しい空の listentries が作成され、ノード レベルに 1 つの新しい listentry が作成されます。すべての新しいエントリには、NestedList に表示される名前はありませんが、すべてのアイテムには名前フィールドに「テキスト」が含まれています。興味深いことに、リーフ レベルの新しいエントリの 1 つが、基になるモデルに型付けされていません。そのため、モデルに対応するメソッドが見つかりませんでした:

Uncaught TypeError: Cannot call method 'getSelectedName' of undefined

NestedList/TreeStore にデータを追加する簡単なチュートリアルを知っている人はいますか? sencha touch docs で良い例を見つけることができませんでした。

4

2 に答える 2

3

リーフアイテムのデフォルトの表示フィールドは「テキスト」です。ここから情報を入手できます。 表示フィールドとして「テキスト」を使用する場合は、この行を次のように変更する必要があります。

customerAreaNode.appendChild({text: "text", leaf:true});

または、ネストされたリストの表示フィールドを変更して、今回はモデルを変更する必要がないようにすることもできます。

yournestedlist.setDisplayField('name');

お役に立てれば。

于 2012-12-07T10:27:00.427 に答える
0

私の場合、次のようにルートノードと子ノードを更新していました

Ext.getStore('Contactsstore').getAt(1).getChildAt(0).set('Email',contactemail);    
Ext.getStore('Contactsstore').getAt(1).set('ContactTitle',contacttitle);
于 2013-12-17T10:30:09.603 に答える