【发布时间】:2013-09-28 19:47:54
【问题描述】:
我正在学习 AngularJS 并尝试构建从 Wordpress 获取数据的前端系统。
在后端,一切似乎都已正确设置,当我使用 jQuery ajax 请求时,它可以毫无问题地获取数据。
jQuery.ajax({
type: 'POST',
url: '/wp-admin/admin-ajax.php',
data: {
action: 'getdataajax'
},
success: function(data, textStatus, XMLHttpRequest){
console.log(data);
},
error: function(MLHttpRequest, textStatus, errorThrown){
console.log(errorThrown);
}
});
但是当我尝试用 AngularJS 做同样的事情时,它不起作用。我正在尝试使用如下代码复制 ajax 请求:
myApp.factory('productsData', function($http, $log) {
return {
getProducts: function(successcb) {
return $http({
method: 'POST',
url: '/wp-admin/admin-ajax.php',
data: {action: 'getdataajax'}
}).success(function(data, status, headers, config) {
successcb(data);
$log.info(data, status, headers(), config)
}).error(function(data, status, headers, config) {
$log.warn(data, status, headers(), config)
});
},
};
});
如果我记录它,它会输出 0。我错过了什么?
感谢您的帮助。
附:控制器如下所示:
myApp.controller('ProductsController', function ProductsController($scope, productsData) {
$scope.sortorder = 'name';
// $scope.products = productsData.products;
// $scope.products = productsData.getProducts();
productsData.getProducts(function(products){
$scope.products = products;
});
});
【问题讨论】:
-
你如何在你的控制器中使用它?
-
更新了帖子。我尝试过不同的方法。也发表了评论。它们都不起作用。对不起
-
请将其添加到问题中,在 cmets 中粘贴代码相当难看。
-
似乎没有其他人尝试将 Angular 与 wordpress 一起使用。我做了一些服务器测试。 PHP 正确响应。此外,如果我将数据硬编码到工厂中 - 它工作正常。老实说,这一切都很奇怪。
-
您可以使用
console.dir(arguments)查看成功函数中的所有参数和值吗?在 chrome 开发工具的网络选项卡中,您可以看到请求,您是否获得了相同的数据?
标签: javascript jquery ajax wordpress angularjs