Переход указателя Knockout-Kendo RadialGauge не работает

Кто-нибудь может объяснить, почему это

js:

var ViewModel = function() {
   this.myValue = ko.observable(25);
};

ko.applyBindings(new ViewModel());

HTML:

<div data-bind="kendoRadialGauge: myValue"> </div>

позволит указателю красиво перейти к новому значению, когда значение с привязкой к данным изменится.

Однако при передаче дополнительных параметров, таких как этот

js:

var ViewModel = function() {
this.myValue = ko.observable(25);

//various gauge settings omitted for brevity

this.pointerOptions = ko.computed(function() {
       return { color: this.pointerColor(), value: this.myValue() };
   }, this);
};

ko.applyBindings(new ViewModel())

HTML:

<div data-bind="kendoRadialGauge: { value: myValue, gaugeArea: gaugeOptions, pointer: pointerOptions }"> </div>

...указатель сразу же переходит к новому значению.

Knockout 2.3.0, JQuery 2.0.3, Kendo UI Dataviz 2013.2.716


person empo    schedule 19.08.2013    source источник
comment
Когда вы указываете любой из параметров отслеживания KO (gaugeArea, указатель, шкала), датчик перерисовывается KO с помощью метода redwaw. Само по себе это не должно вызывать потерю перехода, но нокаут также немного меняет значение шкалы с помощью this.value(0.001 + this.value()); source, который приводит к потере перехода (удаление этой строки решит вашу проблему). Я не знаю, зачем понадобилось это изменение значения, возможно, кендо также изменилось, поскольку год назад в kendo-knockout была добавлена ​​​​поддержка Datawiz.   -  person nemesv    schedule 20.08.2013
comment
Да, удаление строки, которую вы сказали, решает мою проблему. Вы можете добавить свой комментарий в качестве ответа, если хотите, и я приму его.   -  person empo    schedule 02.09.2013


Ответы (1)


Когда вы указываете любую из опций «отслеживания» KO (gaugeArea, pointer, scale), шкала перерисовывается KO с использованием redrawметод.

Само по себе это не должно вызывать потерю перехода, но нокаут также немного изменяет значение датчика, что приводит к потере перехода.

Источник на github :

this.value(0.001 + this.value());

Удаление этой строки из исходного кода решает вашу проблему, поэтому я бы сказал, что это ошибка в Knockout-Kendo.

person nemesv    schedule 02.09.2013