AngularJS показывает научный номер в шаблоне

0

У меня есть API, который возвращает float в мое приложение Angular с помощью $ http.

// Send the API request and handle the response/error
        $http( request ).then( function( response ) {
            console.log( response.data.pension.amount );
        }

В консоли, response.data.pension.amount же, как и должно быть, и показывает 4500.00, но если я добавлю его в свой шаблон (т.е. {{ data.pension.amount }}), он фактически отображается в браузере как 4.208266786607881e-8.

Я застрял в том, как я могу получить это значение для правильной отображения на моей странице.

Я пытаюсь использовать это с Угловым валютным фильтром, который отображается как $ 0.00 из-за формата научных чисел.

Изменение: другой пример

API возвращает следующее:

{
  ...
  "pension": {
    "amount": "4500.00",
  }
  ...
}

Если я использую typeof в консоли, я получаю строку, и если я ставлю console.log pension или pension.amount, я вижу 4500.00 в виде строки.

Но, если я console.log просто response.data, в пенсионном объекте он больше не показывает "4500.00". Вместо этого он показывает 4.208266786607881e-8.

Мне интересно, если это проблема с тем, что он находится в вложенном объекте?

Теги:

1 ответ

0

В JavaScript есть несколько функций, которые могут помочь вам форматировать числа с плавающей запятой для отображения, но они, как правило, требуют много возиться, чтобы получить право.

Я написал этот маленький компонент для обработки явного форматирования научных обозначений:

Демо: http://mobiusklein.github.io/ng-scientific-notation/

Источник: https://github.com/mobiusklein/ng-scientific-notation

Изменить - Ошибка чтения сообщения

Тогда научная нотация не является вашей проблемой. Это то, что ваша структура данных изменяется в какой-то момент между установкой в вашем $http вызове $http и обновлением вашего шаблона. Чтобы понять эту проблему, нам также нужно увидеть, как вы добавляете response.data в область, к которой вы привязаны к этому шаблону.

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

  • 0
    Моя проблема в том, что Angular отображает научную запись, и я хочу использовать фактическое число, округленное до 2 десятичных знаков. Странно то, что число возвращается в виде строки «4500.00» из API, но Angular не рассматривает его как строку, а вместо этого использует научную нотацию - что мне не нужно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню