将变量从工厂传递到控制器以进行查看

时间:2019-06-13 09:20:24

标签: angularjs

我无法从工厂获得控制器中所需的值。

这是我的工厂

({
  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

1 个答案:

答案 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的返回值来解决或拒绝。