Jquery 如何在angularjs中从工厂调用ajax?
我试图从工厂调用ajax,但它没有返回任何信息。我的代码如下Jquery 如何在angularjs中从工厂调用ajax?,jquery,ajax,angularjs,Jquery,Ajax,Angularjs,我试图从工厂调用ajax,但它没有返回任何信息。我的代码如下 var msfaWebPortal = angular.module('MsfaWebPortal', []) .factory('personFactory', function () { var factory = {}; var people = []; $.ajax({ url: '@Url.Action("Get
var msfaWebPortal = angular.module('MsfaWebPortal', [])
.factory('personFactory', function () {
var factory = {};
var people = [];
$.ajax({
url: '@Url.Action("GetPerson","Home")',
success: function (data) {
people = data;
}
});
factory.getPerson = function () {
return people;
};
return factory;
})
.controller('PersonCtrl', function ($scope, personFactory) {
$scope.friends = personFactory.getPerson();
$scope.predicate = '-age';
});
我错过什么了吗?或者我该怎么做?请帮帮我。您应该使用Angulars的$http来拨打这些电话 即 此外,如果您的Personal资源是RESTful的,那么您可以只使用$resource,即
var app = angular.module('myApp', []).... /* setup app */
app.personsFactory = angular.factory('personsFactory', function($resource) {
var persons = $resource('/api/persons/:id', {id: '@id'});
return persons;
});
这样angular就会知道,在您的/api/persons url上,它可以获取个人信息,可以发布新的个人信息,可以更新个人信息并删除个人信息。为什么不使用Angulars的模块进行此操作?对不起。。。。。“我不明白你的问题?”zladuricI的意思是,angular提供了一个$http来进行Ajax调用。此外,在工厂或服务中,您可以使用$resource自动映射整个RESTful端点。请访问任何教程链接。好啊或者他们的API,比如或者如何将成功回调中接收到的数据传递给控制器,以将其添加到作用域中?例如,由于$http由angular提供,其成功回调可以访问$scope,angular将在更改时对其进行消化。所以,只需执行一个$http.get(url.success)(函数(数据){$scope.something=data;})是的,但只有在控制器中调用$http时才能执行此操作。。。你不能在工厂里访问$scope?!或者我误解了$scope的作用。无论如何,我最终向我的工厂方法添加了一个参数“callback”,由$http.success调用,并在我的controllerWell中实现。是的,如果在工厂中调用$http,则范围不存在。但您可以将其作为参数传入,尽管这取决于用例。是的,当ng route模块正在使用时。正如我所说的,这取决于用例。
var app = angular.module('myApp', []).... /* setup app */
app.personsFactory = angular.factory('personsFactory', function($resource) {
var persons = $resource('/api/persons/:id', {id: '@id'});
return persons;
});