вызов функции внутри угловых двойных фигурных скобок

#javascript #angularjs #kendo-ui

#javascript #angularjs #kendo-пользовательский интерфейс

Вопрос:

Это мой фрагмент кода тепловой карты в пользовательском интерфейсе Kendo.

 <div ng-repeat="h in row.hours" ng-style="h.styleStr" 
    data-value="{{params.compare ? h.percentChange : h.current[unit]}}" 
    data-time="{{$index}}">
        {{params.compare ? h.percentChange : h.current[unit]}}
</div>
 

Он отлично работает. что h.current[unit] внутри div, так это то, что он отображает значение (в десятичной системе счисления). Вот так..введите описание изображения здесь
Однако мне нужно отображать десятичные значения в виде целых чисел. Вот так…введите описание изображения здесь
И у меня есть intFormat функция, которая делает именно это. Например:
intFormat(79.952) вернется 80 . Итак, я пытаюсь отформатировать числа внутри тепловой карты с помощью функции intFormat . Как этого добиться? Я не знаю, законно ли это, но я пытался {{params.compare ? h.percentChange : intFormat(h.current[unit])}} , но это не работает. Я использую Angularjs 1X и KendoUI. Могу ли я использовать функцию внутри двойной фигурной скобки?

Ответ №1:

Конечно, вы можете:

создайте функцию, подобную этой

 $scope.getDisplayValue = function(currentValue)
{
   return intFormat(currentValue);
}
 

А затем ссылайтесь на него следующим образом в html:

 {{getDisplayValue(h.percentChange)}}
 

Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы.

Ответ №2:

Вы можете попробовать использовать parseInt(10.5555) встроенный конвертер JavaScript в вашем выражении AngularJS следующим образом: {{parseInt(10.5555)}} .

Надеюсь, это поможет. Спасибо.

Ответ №3:

Я смог исправить это, прикрепив фильтр..вот так…
{{params.compare ? h.percentChange : h.current[unit]|numFmt}}