Domanda

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
           });
        }
    };
});
.

Ho gli anglyjs sopra e quando eseguo la mia pagina la console.log mostra [cycle] terminating; too few slides: 0 e quindi mostra il Get Request dopo.

Come sarei in grado di eseguire la direttiva una volta terminato il $http.get?

È stato utile?

Soluzione

prova a fare questo

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

In questo modo elemento che contiene la direttiva sarà compilato nel browser solo quando le bevande sono disponibili

Altri suggerimenti

Ci sono due cose che puoi usare

    .
  • ng-cloak

  • ng-show e ng-hide e personalizzate scope Property

Prendi in considerazione anche l'utilizzo di animazione invece di creare animazione manuale all'interno della direttiva

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top