Хотелось бы услышать мнение о моем способе задания префикса и вычисления 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];
}
}
})
}
});