我是Angular世界的初学者,我无法解决为什么我仍然没有定义"未定义"错误。这是我的代码:
angular.module('dopasujApp')
.controller('MainCtrl', ['getProducts', '$scope','$rootScope',
function (getProducts, $scope,$rootScope) {
console.log(getProducts.listProducts())
}
]);
这是我的控制器(仅用于测试目的)。
library(data.table)
data(mtcars)
mtcars<-as.data.table(mtcars)
mtcars <- mtcars[,.N, by=cyl]
mtcars
cyl N
1: 6 7
2: 4 11
3: 8 14
答案 0 :(得分:1)
未定义工厂中的getProducts变量。您之前使用的名称只是角度
在您的工厂中,您将返回“false”作为实际结果。因此,角度会将您的“假”视为结果。
看起来应该是这样的:
angular.module('dopasujApp').factory('getProducts', ['$http', function ($http) {
var dataFactory = {}, getProducts = {};
dataFactory.sort='ASC';
dataFactory.orderBy='PRODUCT_NAME';
dataFactory.search='a';
dataFactory.filters={};
dataFactory.filters.ATTRIBS=[46,25];
dataFactory.filters.SIZE=[165,40];
getProducts.listProducts = function() {
return $http({
method: "POST",
url: "http://******/backend/internalAPI.php?action=getListing&fit=1&limit=10&vendor=20",
headers: {
'Content-Type': 'application/json'
},
data: {
data: dataFactory
}
});
}
return getProducts;
}]);
控制器
angular.module('dopasujApp').controller('MainCtrl', ['getProducts', '$scope','$rootScope',
function (getProducts, $scope,$rootScope) {
getProducts.listProducts().then(function(res) {
console.log(res.data);
});
}
]);
编辑:
另请注意,$ http返回promise,但不是实际查询结果,相应地更新了我的示例
答案 1 :(得分:0)
试试这个
var yourapp = angular.module('dopasujApp', []); //your defining your app first
yourapp.factory('getProducts', function ($http)
{
return {
//write your factory methods
};
});
你的控制器应该如下所示
yourapp.controller('MainCtrl', function PostController($scope, getProducts, $compile)
{
//here your controller methods
});