调用$http以响应另一个HTTP - Angular JS
call $http in response of another http - angular js
我是角度JS的新手。我试图在$http的回应中实施$http。
我的问题是,当我打电话给$http以回应$http时。它不显示查看的数据。视图在第二次$http调用之前呈现。我用过承诺,但没有运气。这是我通过稍微更改使用的其他答案中的代码。
angular.module('App', [])
.controller('Ctrl', function($scope, resultsFactory) {
resultsFactory.all().then(
function(res){
$scope.results = res;
},
function(err){
console.error(err);
}
);
})
.factory('resultsFactory', function($http, $timeout, $q) {
var results = {};
function _all(){
var d = $q.defer();
$http({
url: url,
method: 'POST'
}).then(function (response) {
var f = {};
f.id = response.data.id;
f.name = response.data.name;
$http({
url: url,
data: "id="+response.data.parent_id,
method: 'POST'
}).then(function (response1) {
f.parentname = response1.name;
d.resolve(f);
});
});
return d.promise;
}
results.all = _all;
return results;
});
ID 和名称在视图中正确显示,但父名称不显示任何内容。我已经调试了它。它在呈现视图时未定义。渲染后,将其值设置为父名。任何人都可以帮助我解决这个问题吗?
你不应该为此需要延迟:只需链接承诺:
return $http({
url: url,
method: 'POST'
}).then(function (response) {
var data = {};
data.id = response.data.id;
data.name = response.data.name;
return $http({
url: url,
data: "id="+response.data.parent_id,
method: 'POST'
}).then(function (response1) {
data.parentname = response1.name;
return data;
});
});
你覆盖了你的 d 变量...
.factory('resultsFactory', function ($http, $timeout, $q) {
var results = {};
function _all() {
var d = $q.defer();
$http({
url : url,
method : 'POST'
}).then(function (response) {
var secondD = {};
secondD.id = response.data.id;
secondD.name = response.data.name;
$http({
url : url,
data : "id=" + response.data.parent_id,
method : 'POST'
}).then(function (response1) {
secondD.parentname = response1.name;
secondD.resolve(d);
});
});
return d.promise;
}
results.all = _all;
return results;
});
相关文章:
- 如何使用(this)访问Angular 2 http rxjs catch函数中的对象属性
- Angular js http get返回所有页面
- http/rxjs catch回调中的Angular 2重定向导致TypeError:无法读取属性'订阅'
- Angular.js-$http.get-使用文件中的缓存
- Angular http.get没有'我不喜欢在开头和结尾加方括号的文本文件
- Http服务工厂将未定义的返回到Angular中的控制器
- Angular中的过滤和$http承诺
- $http中的Angular 1数据绑定承诺不起作用
- Angular JS `$http`发送POST而不是GET
- 不适用于动态数据的Angular指令来自$http
- 我可以在React应用程序中使用什么作为Angular的等价物;s$http.get
- Angular Provider/JS-如何访问'叔叔方法'从$http().then()
- 使用angular$http和django-urlpatters来获得json文件
- 调用$http以响应另一个HTTP - Angular JS
- 美元http.angular方法中的Get方法没有按预期工作
- 美元http.angular应用中的json调用会返回错误
- 获取响应http angular
- 可观察对象类型有两个http.Angular 2中的get调用
- XMLHttpRequest无法加载文件.跨域请求仅支持HTTP.angular.js
- 传递数组不会被$http Angular service修改