[英]Can I pass a function to another function the call that function with dependencies?
标题可能没有意义,但基本上我不喜欢这样的对象...
[
{
menuItemTitle: 'Edit Page',
checkPermissions: function($http, $timeout){
// Do something which uses $http or $timeout
}
}
]
我有一个菜单指令,它需要遍历数组,并且对于每个项目,它都需要检查.checkPermissions是否是一个函数,如果它是一个函数,则需要调用它,并以某种方式获取所有依赖关系并允许它们可以在函数内部使用,就像Angular在创建控制器,工厂,服务等时一样。
我猜该函数还需要在调用它的上下文中运行,以便原始上下文中的其他变量也可以在“ this”对象上使用,例如
var siteId = 'google.com'
var menu = [
{
menuItemTitle: 'Edit Page',
checkPermissions: function($http, $timeout){
if(siteId === 'google.com'){
$http.get(stuff);
}
}
}
]
我可以找到大量有关如何在控制器和服务中使用DI的文章,却找不到与自己使用喷油器系统来运行这样传递的函数的文章,所以我认为这真的很难吗? 我的JS技能并不能帮助您理解Angular的核心代码,因此,我们将不胜感激。
它应该使用与Angular和第三方库中用于启用DI的函数$injector.invoke
。
它基本上调用checkPermissions
(应该是函数或内联数组批注),并将各自的依赖关系作为参数,也可以提供可选参数作为this
函数的上下文。
var checkPermissionsResult = $injector.invoke(checkPermissions, this);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.