Вопрос

app.controller("MainController", function($scope, $http){
    $scope.items= [];
    console.log('hi');
    $http.get('../assets/data/data.json').then(function(response) {
        $scope.drinks =response.data.drinks;
    });
});

app.directive('cycle', function() {
    return {
        restrict: 'A',
        link: function(scope, element, attrs) {
           $(element).cycle({
               fx: 'fade',
               timeout: 10
           });
        }
    };
});
.

У меня есть вышеуказанные angularjs и когда я запускаю свою страницу, Console.log показывает [cycle] terminating; too few slides: 0, а затем он показывает генеракодицетагкод после.

Как бы я мог запустить директиву, как только Get Request закончится?

Это было полезно?

Решение

попробуйте сделать это

<div cycle ng-if="drinks"></div>
.

Таким образом, элемент, который содержит директиву, будет скомпилирован в браузере только тогда, когда напитки доступны

Другие советы

Есть две вещи, которые вы можете использовать

    .
  • ng-cloak

  • ng-show и ng-hide и нестандартное свойство scope

Также рассмотрите возможность использования анимация вместо того, чтобы создать ручную анимацию в пределах Директивы

.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top