在其他方法中使用工厂方法
Using factory methods inside other methods
如何在一个工厂内使用兄弟姐妹方法?
var app = angular.module('sampleApp', []);
app.factory('utils', function($http, $timeout){
return {
getData : function(url, func){
$http.get(url).
success(func).
error(function(data, status){
alert("WRONG DATA!");
});
},
periodocalUpdate : function(url, period, func, stop){
if (!stop){
$timeout(function(){
utils.getData(url, func).periodocalUpdate(url, period, func);
}, period);
}
}
};
});
app.controller('myCtrl', ['$scope', 'utils', function($scope, utils){
$scope.updateUrl = 'sample.url';
utils.periodocalUpdate($scope.updateUrl, 2000, function(data){
console.log(data);
});
}]);
和firebug显示错误初始化:
错误:utils未定义.periodocalUpdate/.....
我想这是概念上的错误,但不明白在哪里。
...
periodocalUpdate : function(url, period, func, stop){
if (!stop){
$timeout(function(){
//
// /- this utils is undefined.
// |
utils.getData(url, func).periodocalUpdate(url, period, func);
}, period);
}
}
...
试题:
...
getData : function(url, func){
...
return this; // <-- add this
},
periodocalUpdate : function(url, period, func, stop){
var self = this; // <-- and don't forget this
if (!stop){
$timeout(function(){
self.getData(url, func).periodocalUpdate(url, period, func);
}, period);
}
}
...
相关文章:
- AngularJS:$q.dedefe()不能由工厂方法共享
- AngularJS错误:提供程序必须从$get工厂方法返回值
- 修复AngularJS错误:提供程序必须从$get工厂方法返回值
- 有没有一种方法可以在设计模式下将ng模型或工厂绑定到iframe
- 如何重用ajax工厂方法来设置$scoped变量
- 从角度工厂或指令导出方法以供以后使用
- angular.js:13424 ReferenceError:在控制器中使用工厂方法时未定义索引
- Angularjs-向工厂传递数据的方法不起作用
- 如何从变量中动态调用工厂方法
- jasmine 2.0测试angularjs的工厂方法,这是一个承诺
- 如何访问控制器内的工厂方法
- 工厂方法似乎未定义
- 调用工厂方法时出现 Angularjs 错误
- 尝试在 JavaScript 中使用工厂调用方法时未定义
- 如何使用getter和setter方法创建一个Angular工厂而不遇到竞争条件
- 在angularjs工厂方法中添加事件侦听器无法按预期工作
- 如何在Angular中的工厂方法中返回数据
- 工厂方法没有't return-TypeError:无法读取属性'那么'的未定义
- AngularJS-错误:[$injector:pget]提供程序'函数()'必须定义$get工厂方法
- $rootScope和工厂方法