@IvanRobot

Как добавить поля в существующую панель?

У меня есть древовидное меню и панель с именем и описанием пункта меню. Я хочу дать возможность юзерам создавать уникальные имена и описания для некоторых пунктов меню. Но я новичок в extjs :(

Помогите, пожалуйста.

Ext.onReady(function(){

    var store = {'lang' : {
    			'C#' : {
    				'title' : 'C#',
    				'desc'  : 'love C#' },
    			'C++' : {
    				'title' : 'C++',
    				'desc'  : 'love C++' },
    			'Java' : {
    				'title' : 'Java',
    				'desc'  : 'love Java' }
    			}
    		};	

    var menustore = {
            text:"Languages",
            expanded: true,
            children: [{
            text: "C#",
            leaf: true
            },{
            text: "C++",
            leaf: true
            },{
            text: "Java",
            leaf: true
            },{
            text: "PHP",
            leaf: true
            }]
        }

    var treemenu = new Ext.tree.TreePanel({
        title: 'Languages',
        root: menustore,
        width: 170,
        rootVisible: false,
        region: 'west',
        id: 'tree-panel',
        listeners: {

	        'render': function(tp){
	            tp.getSelectionModel().on('selectionchange', function(tree, node){
	            	
	            	var stage = 0

	        	    for (var key in store.lang) {
				    	if (key == node.text) {

				    		var lang = store.lang[key];
	
					    	titlePanel.update(lang.title);
					    	descPanel.update(lang.desc);
					    	stage = 1;
				    	}
				    }

					if (stage == 0) {
						// How to add fields into titlePanel and descPanel?
						console.log('no data');
					}

	            });
		    }    
        }
    });

    var titlePanel = new Ext.Panel({
	    title: 'Name',
    	region: 'north',
        padding: 10
    });

    var descPanel = new Ext.Panel({
    	title: 'Description',
    	region: 'center',
        padding: 10
    });

    var field = new Ext.form.Field({
    	fieldLabel: 'example'
    });

    var centerPanel = new Ext.Panel({
        region: 'center',
        padding:10,
        items : [titlePanel, descPanel]	
    });

    new Ext.Panel({
        layout : 'border',
        width: 400,
        height: 180,
        padding:10,
        items : [treemenu, centerPanel],
        renderTo: Ext.getBody()
    });
});


codepen.io/IvanBot/pen/kkLAya
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы