服务变量分配了数据,但在访问时始终未定义
Service variable assigned data but it is always undefined when accessed
我仍然是角度的新手,如果我的问题有点......
我创建了一个调用一些 REST API 的服务,并用承诺实现了它。
我目前有这个承诺将数据返回给控制器并将其放入$scope
。
我希望当我在此函数中接收数据时,还将回收的数据存储到服务中
,这样如果我已经有数据,我就不必再次调用服务。
app.service("MyService", function ($http, $q) {
this.OrignalDataFromService = null;
return {
var deferred = $q.defer();
...
deferred.resolve(data);
this.OrignalDataFromService = data;
return deferred.promise;
}
}
问题是,当我从控制器访问OrignalDataFromService
时,它总是undefined
(承诺我得到数据只是未定义的服务变量)为什么会这样?
我真的不明白模型应该驻留在角度应用程序中的什么位置。
控制器和服务中的变量$scope
只是为了允许我们从某个地方获取数据,还是应该在服务内部(作为变量)进行模型?
OrignalDataFromService是服务的私有变量,所以如果你想访问它,你需要在对象中返回
检查这个
例:
app.service("MyService", function ($http, $q) {
this.OrignalDataFromService = null;
return {
originalData: this.OrignalDataFromService
}
}
看看这里的小提琴手。您必须公开保存原始数据的变量。
服务
myApp.service('myService', function($q) {
return {
OrignalDataFromService: null,
getData: function() {
var deferred = $q.defer();
var data = ["Data-1", "Data-2", "Data-3"]
deferred.resolve(data);
this.OrignalDataFromService = data;
return deferred.promise;
}
}
});
相关文章:
- 在js中访问元素时不透明度和样式未定义,但在css中定义
- 访问嵌套 json 对象的属性将返回未定义
- Uncaught ReferenceError:尝试在Android网络视图中访问时未定义函数
- 服务变量分配了数据,但在访问时始终未定义
- 尝试从我的 chrome 扩展程序访问 gmail 中的 iframe 时出现未定义的错误,但不是从开发者控制台访问
- 访问节点js中对象内部的数组-未定义
- 按名称访问元素时未定义的值
- 通过AJAX访问时,$_POST中出现未定义的索引错误
- 访问数字类型的未定义属性
- JSON可以't访问数据返回未定义
- 可以't访问JSON中的特定字段,在javascript中表示未定义
- 未定义的函数???从JavaScript访问SharePoint时
- 未定义访问具有对象属性的jquery选择器
- 无法循环访问比较文本值的数组,使用量角器未定义的结果
- 如何使 requirejs 填充模块能够访问未定义的依赖项
- JS:防止访问未定义对象的属性时出错
- JavaScript范围问题,嵌套函数中的var访问未定义
- AS3 - ExternalInterface.访问未定义的属性
- Javascript数组访问未定义
- 范围变量不可访问(未定义)-AngularJS