При добавлении зависимости следующим образом:
"RoundPropertyPriceWithDiscount": {
dependencies: [
{
columns: ["PropertyPriceWithDiscount"],
methodName: "roundPropertyPriceWithDiscount"
}
]
}
и обработки методом:
roundPropertyPriceWithDiscount: function() {
this.roundDoubleValue("PropertyPriceWithDiscount");
},
roundDoubleValue: function(propertyName) {
var value = this.get(propertyName);
var rounded = Math.round(value);
if (rounded != value) {
this.set(propertyName, rounded);
}
},
происходит зацикливание. Кейс:
вводим в поле 5,56 - запускается метод, записывающий в поле 6,00, далее запускается еще раз (очевидно), проверяет что значение в поле равно его округленному значению (6,00 == 6,00) и значение в поле НЕ ПЕРЕЗАПИСЫВАЕТ. И вот далее идет ТРЕТИЙ запуск, в котором this.get() возвращает старое значение поля - 5,56. Ну и, естественно, это бесконечный цикл. Каким образом работает сей механизм? Если мне не изменяет память - в прошлых версиях такого не было.
7.13.1.769_SalesEnterprise_Softkey_MSSQL_ENU
UPD: Подписка на изменение поля вручную решает вопрос
this.on("change:PropertyPriceWithDiscount", this.roundPropertyPriceWithDiscount, this);