【发布时间】:2018-10-08 10:01:11
【问题描述】:
我想问一个简单的问题。我需要捕获要作为参数传递的变量的值(必需)才能使用 API。此变量是 JSON 文件中作为查询的方法的返回,但返回未定义。
关注代码:
在 JSON 中搜索 ID 的功能(带返回)
self.getId = function(){
$http({
method: 'GET',
url: self.urlEspecialidades,
headers: { 'Content-Type': 'application/json' }
}).then(function(resposta) {
var json = {};
json = resposta.data.data;
for(var i = 0; i < json.length; i++){
if(json[i].descricao == self.descricao){
var id_especialidade = (json[i].id_especialidade); }
}
console.log(id_especialidade);
return id_especialidade;
}) }
在 JSON 中搜索状态的功能(带返回):
self.getUf = function() {
$http.get(self.urlEstados,
{
transformResponse: function (cvt) {
var x2js = new X2JS();
var aposCvt = x2js.xml_str2json(cvt);
return aposCvt; }
}).then(function(resposta) {
var json = {};
json = resposta.data.estados.data.item;
for(var i = 0; i < json.length; i++){
if(json[i].estado == self.estado){
var uf = (json[i].uf);
}
}
console.log(uf);
return uf;
}) }
使用两个参数使用 API 的函数:
self.buscaPrestadores = function() {
var id_parametro = self.getId();
var uf_parametro = self.getUf();
console.log(id);
console.log(uf);
$http({
method: 'GET',
url: self.urlPrestadores,
headers: { 'Content-Type': 'application/json' },
params: {uf:uf_parametro,id_especialidade:id_parametro}
}).then(function(resposta) {
//código vem aqui...
}) }
如您所见,控制台在这两个函数中找到了值,但是当我尝试在将使用 API 的函数中捕获它们时,它显示为未定义,即使声明了返回。谁能告诉我我可能缺少什么?
【问题讨论】:
-
Aleksey,真的很抱歉,但我听不懂你在说什么。你能用我的例子和代码解释我吗?甚至是使用这种方法进行学习的材料。我是 angularJS 的新手。
标签: angularjs get httprequest