【发布时间】:2015-02-19 06:37:19
【问题描述】:
我正在尝试创建一个 Angular 服务来获取图像并将这些图像传递给控制器以推送到轮播。我在我的控制器上完成了所有工作,它现在可以与服务一起使用,它不读取服务功能。 我的 index.html 文件
<!doctype html>
<html ng-app="ui.bootstrap.demo">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js"></script>
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.12.0.js"></script>
<script src="example.js"></script>
<script src="example-service.js"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div ng-controller="CarouselDemoCtrl">
<div id="fl-main" class="container">
<div class="col-xs-6 col-md-4 filter">
<label class="btn btn-primary" ng-model="male" ng-click="loadhome(male)">Male</label>
<label class="btn btn-primary" ng-model="female">Female</label>
</div>
<div class="col-xs-12 col-sm-6 col-md-8">
<div carousel interval="myInterval">
<div slide ng-repeat="slide in slides" active="slide.active">
<img ng-src="{{slide.image}}" style="margin:auto; width: ">
<div class="carousel-caption">
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
我的控制器文件,example.js
angular.module('ui.bootstrap.demo', ['ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('CarouselDemoCtrl', function ($scope, homeService) {
$scope.loadhome = function(gender) {
$scope.myInterval = 5000;
var slides = $scope.slides = [];
var items = homeService.loadhomepage(gender);
for (var i=0; i<items.length; i++)
{
slides.push({
image: items[i].image
});
}
};
});
我的服务文件。示例服务.js
angular.module('ui.bootstrap.demo', ['ui.bootstrap']);
angular.module('ui.bootstrap.demo').factory('homeService', function () {
var loadhomepage = function(gender) {
console.log('inloadhomepage');
var slides = [];
if(gender==='male')
{
slides.items =[
{src:'images/carousel.jpg'},
{src:'images/carousel1.jpg'}
];
}
return slides;
};
});
所以基本上当我单击男性按钮时,它应该调用控制器中的 loadhome() 函数,该函数将服务函数中的项目分配给控制器中的 var 项目。然后控制器会将所有图像推送到 $scope.slides。这是我的 plunkr 文件。 http://plnkr.co/edit/JcHrHDJkgFxDfSVcqIJZ
我如何让它返回的项目长度等于它接收的数组?
【问题讨论】:
标签: javascript jquery angularjs angularjs-directive angularjs-scope