我正在使用$http
函数的AngularJs,我有一个异步函数需要另一个反馈变量然后继续,我的代码如下:
function getDataList(company_id) {
return $http.get("https://for_test_document/restful_api/brandsearch/format=json&company_id=" + company_id);
}
然后我尝试按如下方式使用它,JSON已被正确接收:
for (var i = 0; i < len; i++) {
getDataList(json.data[i].id).then(function(successdata) {
var len = successdata.data.length;
var brand_name = "";
for (var j = 0; j < len; j++) {
brand_name = brand_name + successdata.data[j].Brand_Name + '/';
}
console.log(brand_name);
return brand_name + ""
})
我的问题是,console.log
已正确显示brand_name
的内容,但是为什么在浏览器中显示对象?
我的HTML如下:
function loadInfo(){
$http({
method:'GET',
url:'https://for_example/restful_api/companysearch/?format=json',
dataType: "json",
contentType : 'application/json',
Accept: 'application/json',
}).then(function (json){
get_company_type().then(function (data) {
unique_company_type = data.data
})
/*insert data to table */
var len =json.data.length;
var tableStr = '';
tableStr = tableStr+ content
tableStr = tableStr+'<tbody role="alert" aria-live="polite" aria-relevant="all">';
for(var i=0;i<len;i++){
tableStr = tableStr+'<td class=" ">' +
getDataList(json.data[i].id).then(function (successdata){
var len = successdata.data.length;
var brand_name = "" ;
for(var j=0;j<len;j++){
brand_name = brand_name +successdata.data[j].Brand_Name+'/';
}
console.log(brand_name);
return brand_name + "" }) +
'</td><td class=" ">' +json.data[i].City + '</td><td class=" ">' +json.data[i].Address + '</td><td class=" ">' +'Client Contact' +
'</td><td class=" ">' + 'Contact details' + "</td></tr>";
}
tableStr = tableStr+"</tbody>";
感谢您的帮助。
答案 0 :(得分:-1)
显然它返回brand_name类型的对象,不确定它应该这样做。您可以尝试使用toString()强制解析它为字符串:
for (var i = 0; i < len; i++) {
getDataList(json.data[i].id).then(function(successdata) {
var len = successdata.data.length;
var brand_name = "";
for (var j = 0; j < len; j++) {
brand_name = brand_name + successdata.data[j].Brand_Name.toString() + '/';
}
console.log(brand_name);
return brand_name + ""
})