是否有一种方法可以在Angularjs/javascript中执行工厂/类的每个方法之前/之后调用函数
Is there a way to call a function before/after each method of a factory/class is executed in Angularjs/javascript
在java, ruby和许多其他语言中,我们有在方法执行之前/之后调用函数的功能,这些功能大多是由所使用的框架提供的。甚至Jasmine(单元测试库)也有方法beforeEach
(在每个it
块之前执行给定的块)。
有没有办法在Angularjs/javascript中做到这一点,以便它可以在调用类或工厂的任何方法之前执行?
您可以将函数包装在一个新函数中,以便在其执行前后执行一些常见操作,参见以下代码片段:
var wrappedFunction = function(fn) {
return function(){
console.log("Before execute " + fn.name);
var retValue = fn.apply(this, arguments);
console.log("After execute " + fn.name);
return retValue;
};
};
function funcTest1(par) {
console.log("funcTest1 -> Par is: " + par);
};
function funcTest2(param) {
console.log("funcTest2 -> Param value is: " + param);
};
var funcTest1Wrapped = wrappedFunction(funcTest1);
var funcTest2Wrapped = wrappedFunction(funcTest2);
funcTest1Wrapped("Test1");
funcTest2Wrapped("Test2");
我希望这对你有帮助,再见。
相关文章:
- 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和工厂方法