AngularJS:在回调中设置私有服务变量
AngularJS: Set private service variable in callback
我正在尝试这样做:
app.service('productsService', ['$http', productsService]);
function productsService($http){
return {
getProducts: getProducts
}
var _products = [];
function getProducts(){
$http.get('http://localhost:4000')
.then(function(data){
_products = data;
});
}
}
但是在当时的回调_products是一个未定义的变量。
从 then 回调设置_products值的正确方法是什么?
您需要在 return 语句之前设置变量。
app.service('productsService', ['$http', productsService]);
function productsService($http){
var _products = [];
return {
getProducts: getProducts
}
//var _products = []; this will never run
function getProducts(){
$http.get('http://localhost:4000')
.then(function(data){
_products = data;
});
}
}
相关文章:
- 在一个控制器中更新服务变量,并在另一个控制器 - Angular JS中使用更新的值
- 服务变量分配了数据,但在访问时始终未定义
- Angularjs自定义服务变量未被$http成功定义
- 使用服务变量的 angularJS
- 所有控制器模板中的 Angularjs 服务变量
- AngularJS:在回调中设置私有服务变量
- AngularJS在diff控制器的方法上更新服务变量
- 发布绑定/监视两个控制器之间共享的服务变量
- 服务变量未更新Angular JS中的指令
- AngularJS:将服务变量绑定到控制器上的值's$范围
- Wavemaker 7中的服务变量事件
- AngularJS -服务变量是未定义的
- Angular 2:更新服务变量和视图
- AngularJS:控制器变量绑定到服务变量后没有更新
- Angular工厂服务变量创建机制
- 在Angular.js中绑定服务变量
- 将服务变量绑定到控制器AngularJS
- AngularJS:服务变量更改不应用
- 使用ControllerAs语法绑定服务变量,不带$scope
- 根据服务变量修改CSS