Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Префик URL моделей и сами URL моделей (https://javascript.ru/forum/extjs/63086-prefik-url-modelejj-i-sami-url-modelejj.html)

khusamov 17.05.2016 01:57

Префик URL моделей и сами URL моделей
 
Хотелось бы услышать мнение о моем способе задания префикса и вычисления URL моделей:

При режиме development префикс URL равен http://localhost:3000
То есть сервер на другом домене.

Чтобы при сборке приложения этот префикс пропал, его пришлось обернуть в //<debug>. Как сделать правильно пока не знаю. Нет тегов типа <development>.

Встроенный способ определения URL моделей не позволяет делать сложные манипуляции с адресами. Пришлось наворотить свой способ.

Все это я запихнул в класс Element.model.Base, который является базовым для всех моделей.

Ext.define("Element.model.Base", {
	
	extend: "Ext.data.Model",
	
	requires: ["Ext.data.proxy.Rest"],
	
	fields: [{
		name: "id",
		type: "auto"
	}],
	
	schema: {
		namespace: "Element.model",
		//<debug>
		urlPrefix: "http://localhost:3000",
		//</debug>
		
		proxy: new Ext.util.ObjectTemplate({
			type: "rest", 
			url: "{prefix}/{[this.getEntityUrl(values.entityName)]}",
			reader: {
				type: "json",
				rootProperty: "data"
			}
		}, {
			templateOptions: {
				getEntityUrl: function(entityName) {
					var urls = {
						Command: "",
						WorkstationType: "",
						ConfigFileItem: "configfile",
						Workstation: "workstations",
						Trolley: "trolleys",
						Printer: "printers",
						GroupOrder: "group-orders",
						Employee: "employee",
						CuttingItem: "cutting-items"
					};
					if (!(entityName in urls)) throw Error("Модель " + entityName + " не найдена в массиве URL's.");
					return urls[entityName];
				}
			}
		})
		
	}
	
});

Raydezm 18.05.2016 23:10

Используете sencha watch и хотите получать данные с локального сервера? Если какой-то подобный кейс, то можно настроить nginx, который будет роутить на один или другой url в зависимости от пути.

khusamov 19.05.2016 13:45

Цитата:

Сообщение от Raydezm (Сообщение 416962)
Используете sencha watch и хотите получать данные с локального сервера? Если какой-то подобный кейс, то можно настроить nginx, который будет роутить на один или другой url в зависимости от пути.

В принципе это идея. Я так понимаю nginx будет принимать сигнал, а потом решать куда его направить на sencha watch или в мой сервер.

Но все-таки мое решение более проще в реализации. Я его описал в другой ветке http://javascript.ru/forum/extjs/630...jj-server.html А тут хотел бы узнать ответ на все-таки другой вопрос.


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