【发布时间】:2016-08-04 18:11:50
【问题描述】:
这个问题有类似的预先存在的问题,但由于 ES6 类的性质,我认为它们并不相同。
我有一个返回对象的服务,但它以承诺状态对象而不是普通对象的形式返回它,因此无法访问数据。
下面我展示了我如何调用函数,并从 promise 和函数返回,但是返回函数返回 $q promise 而不是内部返回的数据。
class EnterpriseController {
/*@ngInject*/
constructor(EnterpriseService, $scope) {
this.name = 'enterprise';
this.systemId = 20003
this.pageLink = '#/enterprise';
this.$scope = $scope;
this.EnterpriseService = EnterpriseService;
this.$scope.data = this.getEnterpriseData();
}
getEnterpriseData() {
this.EnterpriseService.getData().then(function(response) {
return response.data;
});
}
}
EnterpriseController.$inject = ["EnterpriseService", "$scope"];
export default EnterpriseController;
返回:
$$state 级别以下的任何内容均不可访问。 $$state.value 返回未定义。
最终,我想访问构造函数中返回的数据,但我只能访问似乎是 $q 承诺的内容。
【问题讨论】:
-
这是一个你需要解决的承诺。
-
@CharlesWaston 我认为现在已经修复了吗??
-
它仍然未定义。
-
但在您从 this.scope.data 获得 $$state 对象之前?
标签: angularjs ecmascript-6 angular-promise