【发布时间】:2013-10-15 23:05:21
【问题描述】:
这是我在这里的第一个问题,如果已经讨论过我要问的问题,请提前抱歉。我是 angularjs 的新手,我很确定这不是一个大问题,但我不明白我必须做什么。我正在使用 API teech.io,我想获得一些经验来学习如何使用它们。我的问题是:通过 http 发出 GET 请求(每个用户都有一个应用程序密钥和一个应用程序 ID),例如对材料。材料的文档是这样说的:
对 /materials/:id 的 GET 获取材料对象。
GET /materials/:id HTTP/1.1 主机:api.teech.io Teech-Application-Id: [应用 ID] Teech-REST-API-Key:[API 密钥]
<!DOCTYPE html>
<html>
<head>
<!-- INCLUDE REQUIRED THIRD PARTY LIBRARY JAVASCRIPT AND CSS -->
<script type="text/javascript" src="js/angular.min.js"></script>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/bootstrap-responsive.min.css">
<script type="text/javascript" src="app.js"></script>
<script type="text/javascript" src="teechpadController2.js"></script>
</head>
<body>
app.js 就是这个
var app = angular.module('TeechTest',[]);
teechpadController是这个
teechpad.factory('$api', function($http) {
var defaults = {
method: null,
url: null,
headers: {
'Teech-REST-API-Key': api.teech.io.apikey,
'Teech-Application-Id': api.teech.io.appid.
}
};
var req = function(method, url, config) {
defaults.method = method;
defaults.url = 'http://api.teech.io' + url;
var h = angular.extend({}, defaults, config);
console.log(heart);
return $http(heart);
};
return {
get: function(url, config) {
return req('GET', url, config);
},
put: function(url, data, config) {
defaults['Content-Type'] = 'application/json';
defaults['data'] = data;
return req('PUT', url, config);
},
post: function(url, data, config) {
defaults['Content-Type'] = 'application/json';
defaults['data'] = data;
return req('POST', url, config);
},
delete: function(url, config) {
return req('DELETE', url, config);
}
}
});
到目前为止我所理解的是 teechpadcontroller 重新定义了 PUT-POST-DELETE-GET 方法。现在,我如何在控制器中使用例如 get 方法?或者我应该创建一个其他控制器然后在那里使用 $app 吗?再次抱歉,我在这里和 angularjs 都很新。最后但并非最不重要的一点是,我使用 JSON 对象(我认为这已经很清楚了)
【问题讨论】:
-
您所称的
teechpadController看起来像服务或工厂。当您创建一个名为h的变量时,您还记录了heart。如果您要使用 REST,我建议您使用 ngResource 而不是 $http。最后,如果您创建一个包含您最佳尝试的 jsfiddle.net 或 plnkr.co 或 jsbin.com,您将获得更快的答案。 -
我是新手,不知道 jsfiddle 或 plnkr.co。
标签: javascript api http angularjs