2015-03-06 3 views
0

Я использую Angular-Flexslider в своем приложении, и мне нужно его для отображения изображений с объекта json.Angular-Flexslider с объектом json

радиально-FlexSlider включает директиву FlexSlider, которая действует как нг-повтора так это работает

<flex-slider slide="s in mySlides"> 
    <li> 
     <img ng-src="{{s}}"> 
    </li> 
</flex-slider> 

Однако мне это нужно, чтобы получить изображения от объекта на не массив, и это не работает.

<flex-slider slide="(key, s) in mySlidesObj"> 
    <li> 
     <img ng-src="{{s.slide}}"> 
    </li> 
</flex-slider> 

Есть ли способ заставить это работать?

Контроллер просто имеет данные:

app.controller('BasicSliderCtrl', function($scope) { 
    $scope.mySlides = [ 
     'http://images.mydomain.com/General-3-320x320.jpg', 
     'http://images.mydomain.com/Jared-video-320x320.jpg' 
    ]; 

    $scope.mySlidesObj = { 
     "1001" : { 
     "slide" : "http://images.mydomain.com/img1.jpg" 
     },  
     "1002" : { 
     "slide" : "http://images.mydomain.com/ig2.jpg" 
     },   
     "1003" : { 
     "slide" : "http://images.mydomain.com/img3.jpg" 
     },   
     "1004" : { 
     "slide" : "http://images.mydomain.com/ig4.jpg" 
     }, 

    } 
}); 
+0

Что делает ваш контроллер выглядеть? –

+0

Контроллер имеет только данные. Мне нужно привязать его к базе данных, но на данный момент я просто пытаюсь понять, как заставить это работать с объектом, отличным от массива. Я редактировал свой пост с фрагментом кода. –

ответ

0

поглядывая на исходном коде это выглядит как итерация объектов не поддерживается.

Ваш лучший вариант - это, вероятно, вручную превратить ваш объект в массив.

Например:

$scope.mySlides = Object.keys($scope.mySlidesObj).map(function(slideObj) { 
    return $scope.mySlidesObj[slideObj].slide; 
}); 

Демо:http://plnkr.co/edit/fJ8IrPAt0cInvzD6fwdy?p=preview

Смежные вопросы