В исходных кодах часто встречается использование свойства initMethod, например
...
"Recommendation": {
dataValueType: this.Terrasoft.DataValueType.MAPPING,
type: this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
caption: resources.localizableStrings.RecommendationCaption,
initMethod: "initProperty",
isRequired: false,
doAutoSave: true
},
...
"Recommendation": {
dataValueType: this.Terrasoft.DataValueType.MAPPING,
type: this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
caption: resources.localizableStrings.RecommendationCaption,
initMethod: "initProperty",
isRequired: false,
doAutoSave: true
},
...
Но не совсем понятен смысл, и как его использовать в пользовательских атрибутах
(и можно ли вообще ?)
По идее этот метод должен вызываться при первичном инициализации значения аттрибута или нет ?
PS: Здравый смысл показывает что можно бы забиндить "value" атрибута на метод, для первичной инициализации - но
"value": {bindTo: "MyMethod"}
не приводит к вызову метода, и установке значения.
Я начал искать альтернативы и нашел вот этот initMethod, но сдается мне это тоже не то... установив для своих атрибутов initMethod он тоже так и не был вызван.
Нравится
1 комментарий
6 апреля 2017 17:01
Здравствуйте!
Пример реализации и вызова функции указанного в атрибуте можете посмотреть в схеме ProcessFlowElementPropertiesPage.
Пример кода:
initParameters: function(element) { this.initDesignerType(); Terrasoft.each(this.columns, function(columnConfig, columnName) { if (columnConfig.initMethod) { var parameter = element.findParameterByName(columnName); this[columnConfig.initMethod](parameter); } }, this); },
Пример реализации метода:
initProperty: function(parameter) { var parameterName = parameter.name; this.set(parameterName, this.getParameterValue(parameter)); },
Метод initParameters вызовется в момент создании экземпляра схемы/модуля.
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать