【发布时间】:2015-07-05 21:01:26
【问题描述】:
我整个周末都在尝试使用ng-repeat 在光滑的角度轮播中显示数据(我使用$http.get 获取的数据),但徒劳无功...
我尝试使用init-onload 和data 属性,但徒劳无功...
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 模块在我的app.js 文件中定义,我使用 yeoman 来搭建我的项目)
如果你能帮助我,那就太好了。
【问题讨论】:
-
好吧,我认为这不太合适,因为
init-onload是要等到你有一个data的变量,但是因为你用一个空的预填充该变量在发出$http请求之前,slick 不会知道它应该等待。如果删除store.products = [];这一行,它会起作用吗? -
或者,延迟加载光滑,如@PankajParkar 的回答中所述
-
非常感谢!它与 Pankaj Parkar 的方法一样有效。多亏了你们两个,我明白了一个重要的点。
标签: javascript angularjs angularjs-ng-repeat ng-repeat angular-ng-if