dependencies, передать в метод обработчик, аргументы.
Очень много оверхеда по коду можно было бы избежать имея возможность передавать аргументы в методы обработчики зависимостей аттрибута.
Например у вас есть 10-ть полей отражающих сущность стоимости "без НДС" и соответвующие им поля "с НДС", вместо того чтобы писать 10-ть методов обработчиков, можно было бы написать один, но передавать в него целевые поля или их имена.
Я пролез по исходникам и нашел занятное поле конфигурационного объекта "argument
"dependencies": [
{
"columns": ["SomeFiledwithoutVAT"],
"methodName": "VAT_calculate",
"argument": "SomeValue"
}
]
}
Таким образом в первый аргумент при вызове метода обработчика попадает "SomeValue"
Далее вопроса два:
1) Как передавать множественные аргументы ? (предусмотрено ли нечто такое ?)
Я естественно проверил "arguments"
"dependencies": [
{
"columns": ["SomeFiledwithoutVAT"],
"methodName": "VAT_calculate",
"arguments": [null, 1, "SomeText"]
}
]
}
но меня ждало фиаско...
тем не менее можно в сам "argument" передавать массив, просто обогатив логику метода сплитом - добиться необходимого.
Хотя кончено это не так эстетично, как если бы можно было
но тут возникает второй вопрос:
2) Уж больно редко сей аттрибут используется в исходных кодах, есть предположение, что это "костыль" и его могут в любой момент убрать.
Т.е. использовать его при разработке своей логики - авантюризм,
кто ни будь знает это часть нормального долгоживущего функционала или это "костыль" ?
Нравится
"Андросов Дмитрий" написал:https://learn.javascript.ru/arguments-pseudoarray
Зачем вы меня отправляете читать про псевдомассив arguments ? :biggrin:
В данном случае arguments, я по аналогии с argument - это атрибут анонимного объекта - элемента массива dependencies
атрибуты объекта вольны называться как хочется, хоть ключевыми словами.
var x = { var: "var keyword", arguments: "pseudo array", function: "function keyword" } //любуемся console.log(x)
Псевдомассив аргументов при вызове метода обработчика собирается следующим образом:
первый аргумент: значение атрибута "argument" установленное в dependencies объекте.
второй аргумент: Имя аттрибута текущей модели (поля) по которому сработала зависимость.
Вот вопрос касался как раз "argument"
"Севостьянов Илья Сергеевич" написал:Вот вопрос касался как раз "argument"
arguments нет, как вы могли уже увидеть по исходникам.
Используйте argument, передавая туда массив или объект, и учите ваш метод работать с этим первым аргументом, разбирая его на нужные вам значения.
Логика зависимостей вряд ли поменяется в ближайшее время.