我对 Angular 还是个新手,如果我的问题有点……抱歉,我很抱歉
我创建了一个调用某些 REST API 的服务,并使用 promises 实现了它。
我目前正在使用这个 promise 将数据列表返回给 Controller 并将其放入 $scope
中。
我希望当我在此函数中接收数据时也将检索到的数据存储到
服务,这样如果我已经有数据就不必再次调用服务。
app.service("MyService", function ($http, $q) {
this.OrignalDataFromService = null;
return {
var deferred = $q.defer();
...
deferred.resolve(data);
this.OrignalDataFromService = data;
return deferred.promise;
}
}
问题在于,当我从 Controller 访问 OrignalDataFromService
时,它始终是 undefined
( promise 我得到的数据只是未定义的服务变量),这是为什么呢?
我真的不明白模型应该驻留在 Angular 应用程序中的什么位置。
Controller 和服务中的 $scope
变量只是为了让我们从某个地方获取数据,还是模型应该在服务内部(作为变量)?
最佳答案
OrignalDataFromService 是服务的私有(private)变量,所以如果你想访问它,你需要在对象中返回
例子:
app.service("MyService", function ($http, $q) {
this.OrignalDataFromService = null;
return {
originalData: this.OrignalDataFromService
}
}
关于javascript - 服务变量分配数据但访问时始终未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36871396/