gpt4 book ai didi

javascript - 在 Angular (PhoneGap) 中,构造 AJAX 调用并将返回用作可存储 JSON 数据的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-03 08:01:28 25 4
gpt4 key购买 nike

我刚刚开始使用 Angular,并且没有编程背景(我是一名设计师,呃哦)。我将两个 PhoneGap 入门项目混合在一起,拆解它们的代码以适应我的想法。 我正在尝试对一个非常简单的主从应用程序进行逆向工程,该应用程序使用一些 JSON,并对其进行更改,以便它通过 AJAX 获取数据。最终,我希望在最初获取数据后将数据存储在应用程序中,并让它更新来自 AJAX 源的任何新数据。

目前该应用程序具有:

module.factory('$data', function() {
var data = {};
data.items = [
{
title: 'A bunch of data',

..等等..

除此之外(实际上在此之前),我已经编写了我的 AJAX 调用:

module.controller('AppController', ['$scope','$http', function($scope,$http) {
$http({
method: 'GET',
url: 'http://www.my-web-adddress.net/api/blah'
}).then(function successCallback(response) {
var results = response["data"];
for( var i = 0, len = results.length; i < len; i++ ){...

..然后我可以在其中操作数据。但是我不确定在这两个函数之间传递数据,或者我是否最好尝试编写一个函数。如果它应该是一个单一的函数,我正在努力解决 factory vs service vs controller 约定、范围、注入(inject)等,所以如果有人可以给我一个简单的例子来说明他们如何构建它,这将是令人惊奇的。

最佳答案

根据经验,最好将所有 CRUD 操作(创建、读取、更新和删除)放在单独的工厂/服务中。这使得测试和重用变得更加容易。

module.factory('MyDataFactory', ['$http',
{
return {
getData: function(){
return $http.get('http://www.my-web-adddress.net/api/blah')
}

// My other CRUD operations

};
}]);

这将作为 promise 返回,现在可以从您的 Controller 调用:

module.controller('AppController', ['$scope','MyDataFactory',
function($scope, MyDataFactory) {
MyDataFactory.getData().then(function successCallback(response){
var results = response["data"];
},
function errorCallback(response){
console.log(response);
}
}])

您可能还想查看caching ,使用 $http 非常容易。
当谈到整个工厂与服务与... this thread值得一读

请注意,上面的代码尚未经过测试,它应该为您提供一个概要。

关于javascript - 在 Angular (PhoneGap) 中,构造 AJAX 调用并将返回用作可存储 JSON 数据的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34566022/

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