ho cercato tutto il week end per visualizzare i dati (che vado a prendere con $http.get
) nel carosello angolare chiazza di petrolio utilizzando ng-repeat
, invano ...
I' Ho letto sul noto problema: here e here.
ho cercato di utilizzare gli attributi init-onload
e data
, invano ...
HTML:
<div ng-controller="LandingCtrl as ctrl">
...
<slick init-onload=true data="ctrl.products">
<div ng-repeat="product in ctrl.products"><img src="{{product.image}}" alt="{{product.title}}"></div>
</slick>
...
</div>
JS:
angular.module('myApp')
.controller('LandingCtrl',['$http', function($http){
var store = this;
store.products = [];
$http.get('products.json')
.success(function(data){
store.products = data;
console.log(data); //display the json array
});
}]);
(myApp
modulo è definito nel mio file app.js
, Ho usato yeoman per impalcatura il mio progetto)
Sarebbe bello se potessi aiutarmi.
bene, non penso che avrebbe funzionato perfettamente ragione, dal momento che 'init-onload' ha lo scopo di aspettare fino a quando si dispone di una variabile per' data', ma dal momento che precompilate quella variabile con una matrice vuota prima di effettuare la vostra richiesta '$ http', la slick non saprà che si suppone che aspetti. funziona se si rimuove la riga 'store.products = [];'? – Claies
o, ritardare il caricamento chiazza di petrolio, come nella risposta di @PankajParkar – Claies
Grazie mille! Funziona bene come il metodo di Pankaj Parkar. Grazie ad entrambi, ho capito un punto importante. – user4820423