Можем ли мы отложить рендеринг в angularjs, пока все переменные не получат требуемые значения из обратных вызовов - PullRequest
0 голосов
/ 13 июня 2018

Обновление

1- IsShopToShowTeridity возвращает значение true, которое ожидается, но значения не отображаются в представлении.


Я поделился кодом angularjs.Там IsShopToShowTerminated всегда не определено и не отображает требуемое значение.

Я думаю, проблема в том, что сначала он рендерится, а затем значение IsShopToShowTerminated изменяется.После поиска я все больше путаюсь.

$scope.IsShopToShowTerminated = function(shopTerminationDate) {
  setTimeout(function() {
      debugger;
      if ($scope.IsTerminated($scope.viewCompany.TerminationDate)) {
        return true;
      } else {
        return $scope.IsTerminated(shopTerminationDate);
      }
    },
    0);
}
<td ng-init="isTerminatedValue = IsShopToShowTerminated(shop.TerminatinonDate)">
  {{isTerminatedValue}}
  <div ng-show="isTerminatedValue">
    <i class="fa fa-circle text-danger"></i>
    <small>Terminated</small>
  </div>

  <div ng-show="isTerminatedValue">
    <i class="fa fa-circle text-success"></i>
    <small>Active</small>
  </div>
</td>

1 Ответ

0 голосов
/ 13 июня 2018

Вы можете отложить рендеринг, добавив директиву ngIf, которая проверяет значение isTerminValue на неопределенность.

<td ng-init="isTerminatedValue = IsShopToShowTerminated(shop.TerminatinonDate)">
    <div ng-if="isTerminatedValue">
        {{isTerminatedValue}}
        <div ng-show="isTerminatedValue">
            <i class="fa fa-circle text-danger"></i>
            <small>Terminated</small>
        </div>
        <div ng-show="isTerminatedValue">
            <i class="fa fa-circle text-success"></i>
            <small>Active</small>
        </div>
    </div>  
</td>
...