как отформатировать проценты с десятичным числом, используя angular2 createNumberMask из текстовой маски

Я использую text-mask для angular 2 для форматирования процентов с десятичной дробью. Для этого я использую аддон createNumberMask. Когда я пытаюсь отформатировать строку с десятичным числом в процентах, я получаю ошибку времени выполнения, не могу подготовить свойство «тест» неопределенного. Ниже приведен пример того, как я форматирую маску.

let percentMask = createNumberMask({
        prefix: '',
        suffix: '%',
        allowDecimal: true
    });

Используя приведенную выше маску, я затем вызываю функцию для возврата моего массива масок следующим образом.

let mask = percentMask('4.5');

Затем я передаю эту маску для соответствия ToMask следующим образом:

let conformed = conformToMask('4.5', mask, {guide:false});

Это вызывает следующую ошибку времени выполнения «Ошибка в: 0: 0, вызванная: Не удается прочитать свойство «тест» неопределенного.

Каков правильный способ реализации вышеуказанной функции, чтобы пользователь мог вводить процент с десятичным числом и правильно его форматировать. то есть пользователь вводит 4,5, который затем отображается как 4,5% в пользовательском интерфейсе.


person Jaskaye17    schedule 04.05.2017    source источник
comment
Вы когда-нибудь находили решение для этого?   -  person eyalhakim    schedule 12.09.2017
comment
@eyalhakim не так ли?   -  person adamdport    schedule 29.09.2017


Ответы (1)


Я почти уверен, что это ошибка. Вы можете увидеть обсуждение этого вопроса здесь. Мне удалось обойти проблему, удалив элементы '[]', созданные функцией, возвращаемой из createNumberMask:

let percentMask = createNumberMask({
    prefix: '',
    suffix: '%',
    allowDecimal: true
});

let mask = percentMask('4.5');
mask = mask.filter((val) => val != '[]');   // <-- this removes the '[]' elements

let conformed = conformToMask('4.5', mask, {guide:false});
person adamdport    schedule 02.10.2017