@srnsdlmtn

Как перенести несколько значений из $scope во view в angularjs?

Есть контроллер, который во-первых берёт некоторые данные из json и сохраняет их в переменную, а во-вторых циклом считает разницу между двумя датами.
app.controller('myController', function($scope, loadData) {
  loadData.success(function (data) {
    $scope.Info = data;

    for(i=0; i<data.length; i++) {
      var dateFormat = 'DD/MM/YYYY HH:mm:ss';
      var end = moment(data[i].date);
      var now = moment();

      var difference = moment(endDate,dateFormat).diff(moment(currentDate,dateFormat));
      var duration = moment.duration(timeDIff);
      var formatDuration = timeDuration.format("d дня hh часов mm минут ss секунд");

      console.log(formatDuration);
      $scope.cd = formatDuration ;
    };
  });
});


В console.log выводятся все значения по порядку, а когда сохраняю их в переменную и вставляю её во view, показывается только последнее значение. Я понимаю, что они перезаписываются друг за другом, но не знаю как сделать так, чтобы они шли по порядку как значение name, которое берётся из массива json.
<div>
  <div ng-repeat="item in Info">
    <h3>{{item.name}}</h3>
    <p>До окончания:<br />{{cd}}</p>
  </div>
</div>


PS: ещё один вопрос, буду благодарен если на него тоже получу ответ, а лучше ссылку где рассказано как реализуется счётчик в реальном времени на angular для примерно моего случая. То есть чтобы время которое осталось до окончания тикало в реальном времени. Я думал использовать setInterval, но почему то кажется, что в angular для этого есть свои вещи, которые я не могу найти.
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
$scope.calcTime = function(date){
      var dateFormat = 'DD/MM/YYYY HH:mm:ss';
      var end = moment(date);
      var now = moment();

      var difference = moment(endDate,dateFormat).diff(moment(currentDate,dateFormat));
      var duration = moment.duration(timeDIff);
      var formatDuration = timeDuration.format("d дня hh часов mm минут ss секунд");

      console.log(formatDuration);
      return formatDuration;
}


<div>
  <div ng-repeat="item in Info">
    <h3>{{item.name}}</h3>
    <p>До окончания:<br />{{calcTime(item.date)}}</p>
  </div>
</div>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
29 нояб. 2024, в 07:44
20000 руб./за проект
29 нояб. 2024, в 04:45
5000 руб./за проект
29 нояб. 2024, в 04:42
5000 руб./за проект