Проблема
Есть поле
{
"operation": "insert",
"name": "UsrJob",
"values": {
"layout": {"column": 0, "row": 0, "colSpan": 12},
"bindTo": "UsrJob"
},
"parentName": "Header",
"propertyName": "items"
}
В атрибутах идет подписка на событие
"Job": {
dependencies: [{
columns: ["UsrJob"],
methodName: "jobChanged"
}]
}
В метод jobChanged() при изменении поля UsrJob не заходит. Схема карточки наследуется от BasePageV2.
Причина
Пользователь в созданной схеме переопределил метод родительской схемы onEntityInitialized() следующим образом:
onEntityInitialized: function() {
this.set("IsChanged", true);
if (this.isAddMode()) {
this.hideBodyMask();
return;
}
var forecastId = (this.isCopyMode())
? this.get("SourceEntityPrimaryColumnValue")
: this.get("Id");
if (!Ext.isEmpty(forecastId)) {
var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
rootSchemaName: "UsrForecastDimension",
rowCount: 1
});
esq.addColumn("Id");
esq.addColumn("UsrDimension");
esq.filters.add("ForecastFilter", Terrasoft.createColumnFilterWithParameter(
Terrasoft.ComparisonType.EQUAL, "UsrForecast", forecastId));
esq.getEntityCollection(function(response) {
if (response && response.success) {
var collection = response.collection;
if (collection.getCount() > 0) {
var collectionItems = collection.getItems();
var dimensionItem = collectionItems[0];
var dimension = dimensionItem.get("UsrDimension");
this.set("UsrDimension", dimension);
}
}
this.hideBodyMask();
}, this);
}
},При этом не был вызван метод onEntityInitialized() базовой схемы.
Решение
Добавить в замещающий метод вызов замещенного метода строкой:
this.callParent(arguments);
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать