2012-03-19 40 views
6

Tôi đang sử dụng NestedList với TreeStore nằm bên dưới. Bây giờ tôi muốn thêm các mục vào NestedList dưới dạng lá. Tôi có thể làm như thế nào?Sencha Touch 2: Chèn vào TreeStore/NestedList

Hiện nay mã của tôi (Controller, onAddButtonTapped) trông như thế này:

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

Mã này kết quả trong hai listentries mới trống trên mức lá (phía sau nút đúng) và một listentry mới về mức node. Mọi mục nhập mới không có tên được hiển thị trong NestedList nhưng mọi mục có chứa "văn bản" trong trường tên của chúng. Thật kỳ lạ một trong những mục mới ở cấp độ lá không được gõ vào Mô hình cơ bản. Vì vậy, không thể tìm thấy các phương thức tương ứng với mô hình:

Uncaught TypeError: Cannot call method 'getSelectedName' of undefined 

Có ai biết hướng dẫn dễ dàng cách thêm dữ liệu vào NestedList/TreeStore không? Tôi không thể tìm thấy một ví dụ tốt trong tài liệu sencha cảm ứng.

+0

này có thể giúp: http://stackoverflow.com/questions/9655201/update-a-nested-list-in -sencha-touch-2 --- im trên di động của tôi vì vậy tôi không thể kiểm tra mã, xem nếu điều đó giúp bạn bắt đầu –

Trả lời

3

Trường hiển thị mặc định cho các mục lá là "văn bản". You can get the information from here. Nếu bạn muốn sử dụng "văn bản" như lĩnh vực hiển thị, sau đó bạn cần thay đổi dòng này để

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

Hoặc bạn có thể thay đổi lĩnh vực hiển thị danh sách lồng nhau của bạn, do đó mô hình của bạn không cần phải thay đổi cho thời gian này.

yournestedlist.setDisplayField('name'); 

Hy vọng điều này sẽ hữu ích.

0

Trong trường hợp của tôi, tôi sử dụng để cập nhật thư mục gốc và nút con như cách sau

Ext.getStore('Contactsstore').getAt(1).getChildAt(0).set('Email',contactemail);  
Ext.getStore('Contactsstore').getAt(1).set('ContactTitle',contacttitle); 
Các vấn đề liên quan