gpt4 book ai didi

jquery - 如何在 angularjs 中从工厂调用 ajax?

转载 作者:行者123 更新时间:2023-12-01 01:24:23 26 4
gpt4 key购买 nike

我正在尝试从工厂调用 ajax,但它不会返回任何内容。我的代码如下

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 来进行这些调用。

即。

var app = angular.module('myApp', []).config(/* config stuff */ );
app.PersonFactory = angular.factory('PersonResource', function($http) {
/* your code here */
/* when you want to make Ajax calls, use $http */
$http.get('/some/url/to/persons')
.success(function (response) {...})
.error(function(err){...});
/* keep going */
});

此外,如果您的 Persons 资源是 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 上,它可以获取人员,可以发布新人员,可以对人员进行更新并删除人员。

关于jquery - 如何在 angularjs 中从工厂调用 ajax?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18400692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com