Публикация
Не срабатывает метод при подписке на изменение поля в атрибутах
18 июля 2018 03:46
Проблема
Есть поле
{ "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);
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать