我无法从工厂获得控制器中所需的值。
这是我的工厂
({
countDoc: function(personId) {
var deRelatedToPerson, deRelatedToPersonJSON;
deRelatedToPerson = [
{
people: [personId],
isActiveFilter: personId === 0 ? false : true,
type: 'peopleAdvancedSearch',
searchSection: 'peopleSearch'
}
];
deRelatedToPersonJSON = $filter("json")(deRelatedToPerson);
return $http.post(advancedSearchDeBasePath + 'partialRecordCount/', deRelatedToPerson)
.then(function(resp) {
resp.data;
return console.log(resp.data.data);
});
}
});
这是我的控制者:
bioPeopleFactory.countDoc(personId).then(function(resp) {
$scope.totalDocNum = resp.data;
return console.log(resp.data);
});
我收到此控制台错误:
TypeError:无法读取未定义的属性“数据”
似乎在控制器中未定义resp.data。
但是,自生产线起,控制器在工厂工作并调用功能 返回console.log(resp.data.data);在工厂中,我可以在che console.log中获得所需的正确价值。
但是我得到了: console.log!
答案 0 :(得分:0)
将响应返回给成功处理程序:
return $http.post(advancedSearchDeBasePath + 'partialRecordCount/', deRelatedToPerson)
.then(function(resp) {
resp.data;
̶r̶e̶t̶u̶r̶n̶ ̶c̶o̶n̶s̶o̶l̶e̶.̶l̶o̶g̶(̶r̶e̶s̶p̶.̶d̶a̶t̶a̶.̶d̶a̶t̶a̶)̶;̶
console.log(resp.data.data);
return resp.data;
});
此.then
方法返回一个新的promise,该新的promise通过successCallback或errorCallback的返回值来解决或拒绝。