我是AngularJS的新手 . 我想将数组数据从我的app工厂传递给app控制器 .
这是我的app.factory代码 .
App.factory('buyFactory', ['$http', function($http) {
factory.Search = function(scope, d) {
var data = scope.search;
scope.CarsData = [];
all_cars = [];
scope.isLoading = true;
$http.post(ajaxurl + '?action=search_car', d)
.success(function(response) {
angular.forEach(response, function(c) {
c.price = parseFloat(c.price);
c.driven = parseFloat(c.driven);
c.year = parseFloat(c.year);
});
angular.forEach(response, function(value, key) {
all_cars.push(value);
scope.CarsData = all_cars;
scope.TotalItems = scope.CarsData.length;
scope.isLoading = false;
})
.error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
scope.isLoading = false;
});
}
return factory;
}]);
这是app.controller as
App.controller('buyController', ['$scope', '$http', 'buyFactory', '$filter', function($scope, $http, buyFactory, $filter) {
$scope.CarsScroll = buyFactory.Search.CarsData();
$scope.loadMore = function() {
var last = $scope.CarsScroll[$scope.CarsScroll.length - 1];
for (var i = 1; i <= 3; i++) {
$scope.CarsScroll.push(last + i);
}
};
//scroll
}]);
我想使用从工厂获得的输出,即 CarsData
作为我的app控制器中的变量 . 但我无法得到它 . 我也尝试过使用服务 . 是否有以最简单的方式使用数组数据的方法 .
1 回答
您的语法完全被破坏,我建议您遵循AngularJS的任何课程 . 至于如何正确地做你想要的东西看起来像这样
注意:我不知道d参数是什么,也不知道为什么angular.forEach语句可能没有完全起作用 . 但这更像是工厂应该如何看待和使用的指导原则 .