2015-09-01 2 views
1

У меня есть простая таблица, которая отображает объекты данных, причем одним из свойств объектов данных является число.Как рассчитать% разницу между числами по индексу в ngRepeat

Вот мой стол с ngRepeat:

<tbody> 
    <tr ng-repeat="number in Numbers"> 
     <td>{{ $index }}</td> 
    <td>{{ number.num }}</td> 
    </tr> 
</tbody> 

Теперь то, что я хотел бы сделать, это добавить столбец, который вычисляет и отображает процентную разницу между первыми и предыдущими числами. Есть ли способ сделать это с помощью ngRepeat? Я попробовал добавить колонку следующим образом:

<td>{{ number.num[$index]/number.num[$index + 1] }}</td> 

Но в конце концов это не сработало. В результате он отобразил все данные в этом столбце как NaN. Я что-то упустил?

+1

Think вы имеете в виду ссылки 'Числа [$ индекс] .num/Числа [$ индекс + 1] .num' – user2718281

+0

Я попробовал но, похоже, он тоже не работает. Дело в том, что «num» на самом деле является свойством объектов Numbers, и именно там хранятся фактические числа. Я чувствую, что все равно должно быть что-то после .num. –

ответ

0

user2341963 имеет правильный ответ:

angular.module('test', []) 
 

 
.controller('Test', function($scope) { 
 
    var numbers = [1,3,5,53,2,552,32]; 
 
    
 
    $scope.Numbers = numbers.map(function(n) { 
 
    return {num: n}; 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.1/angular.min.js"></script> 
 

 
<div ng-app='test' ng-controller='Test'> 
 
    <div ng-repeat="number in Numbers"> 
 
    index: {{$index}} | 
 
    number: {{number.num}} | 
 
    result: {{Numbers[$index].num/Numbers[$index + 1].num}} 
 
    </div> 
 
</div>

+0

Большое спасибо Icycool и user2341963, я немного поиграл с ним и узнал, что я использовал ненулевые значения для первых нескольких записей, которые испортили всю таблицу, хотя решение было правильным. –

 Смежные вопросы

  • Нет связанных вопросов^_^