Пользовательский интерфейс angular-kendo, NumericTextBox, не может отображать нулевое значение

Когда я устанавливаю начальное значение переменной в "0", поле NumericTextBox не может показать это значение.

Код:

<div ng-app="app">
    <div ng-controller="MyCtrl">
        <input type="text" ng-model="value" kendo-numeric-text-box>
            <br>
        <input type="text" ng-model="value">
    </div>
</div>

JS:

angular.module('app', ['kendo.directives']);
function MyCtrl($scope) {
    $scope.value=0;
};

В jsfiddle вы можете видеть, что простое текстовое поле отображает нулевое значение, но кендо NumericTextBox пусто. Но если вы снова введете ноль в простом текстовом поле, то ноль будет и в поле кендо. Я думаю, что это ошибка, как обойти эту проблему?

1 ответ

Решение

Что ж, если это ошибка, вы можете либо попросить помощника angular-kendo исправить это, либо вы можете исправить это самостоятельно. Я думаю, это относительно простое исправление, потому что функция связи не различает значения модели от 0 до undefined, Таким образом, вам нужно убедиться, что метод значения виджета вызывается только с null если значение на самом деле null или не определено:

if (typeof ngModel.$viewValue !== 'undefined') {
    widget.value(ngModel.$viewValue);
} else {
    widget.value(null);
}

Вот демо с фиксированной версией (обратите внимание на ссылки на форк angular-kendo).

Другие вопросы по тегам