Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Вопрос новичка по архитектуре MVC (https://javascript.ru/forum/extjs/42876-vopros-novichka-po-arkhitekture-mvc.html)

GroZa 12.11.2013 18:50

Вопрос новичка по архитектуре MVC
 
Добрый день! Второй день осваиваю ExtJS. Не могу разобраться.
Задача стандартна и просто:
Как только открываешь индексную страницу грузится пустой
workspace и вверху тулбар, который делится на главное меню и userBar (фио пользователя, кнопка с личные сообщениями, и т. д).
Я начал делать так:
app.js
Ext.application({
    name: 'IvCRM',
    appFolder: 'app',
    requires: [
        'IvCRM.view.Workspace'
    ],
    launch: function() {
        var workspace = Ext.create('IvCRM.view.Workspace');

        Ext.create('Ext.container.Viewport', {
           layout: 'fit',
           items: [workspace]
        });
    }
});


views.Workspace.js:
Ext.define('IvCRM.view.Workspace', {
    extend: 'Ext.panel.Panel',
    bodyCls: 'panel-workspace',

    initComponent: function() {
        var toolbar = Ext.create('Ext.toolbar.Toolbar'); // верхний тулбар

        this.tbar = toolbar;
        this.callParent();
    }
});

Далее, я не знаю за что взяться(
Мне нужно загрузить в тулбар пункты меню и поставить им обработчики.
А так же узнать ФИО пользователя с сервера, количество непрочитаных сообщений и также загрузить это в тулбар.

Вопрос. Получается, мне нужно следать для menu и userBar отдельные контроллеры и вьюшки? Если да, то как мне их потом слить воедино в Workspace.js и добавить в toolbar?

skrudjmakdak 13.11.2013 00:48

я вот так делал:

Ext.Loader.setPath('Ext.ux', '/js/lib/ext/ux');

Ext.require([
	'Ext.data.*',
	'Ext.util.*',
	'Ext.view.View',
	'Ext.ux.DataView.Animated',
	'Ext.XTemplate',
	'Ext.panel.Panel',
	'Ext.toolbar.*',
	'Ext.slider.Multi']);
	
Ext.onReady(function()
	{
	Ext.create('Ext.Viewport',
		{
		layout: 'border',
		renderTo: Ext.getBody(),
		items: [
			{
			region: 'center',
			tbar: [
				{
				xtype: 'button',
				text: ' Данные ',
				menu: [
					{
					text: 'Видео'
					},
					{
					text: 'Книги'
					},
					{
					text: 'Страницы'
					},
					{
					text: 'Документы'
					}]
				},
				{
				xtype: 'button',
				text: ' Настройки '
				},
				'->',
				{
				xtype: 'button',
				text: ' На сайт '
				},
				'-',
				{
				xtype: 'button',
				text: ' Выйти ',
				handler: function  ()
				   {
				   console.log(1);
				   }
				},
				'-',
				{
				xtype: 'label',
				text: 'дата последнего входа: ' + datetime_input
				}],
			margins: '1 1 1 1',
			id: 'content-panel',
			layout: 'card',
			activeItem: 0,
			border: false,
			items: layoutExamples
			}]
		});
	});

skrudjmakdak 13.11.2013 00:50

за основу брал отсюда:
http://docs.sencha.com/extjs/4.2.2/#...t-browser.html


Часовой пояс GMT +3, время: 07:06.