这是How to inherit from base provider (not the provider factory)?的后续行动。建议的解决方案建议angular.extend
和angular.copy
的组合(可以在Angular 1.4上使用angular.merge
完成)将基本提供程序实现复制到所有其他提供程序中。
但是这导致了另一个我没想到的问题。使用此技术,我的提供程序现在可以通过provider.setX
函数进行配置,以及直接访问provider.config.x
属性。
以下是展示此问题的示例:
答案 0 :(得分:1)
不确定您之后的情况,但var config = {}
不是变量,而是属性,这就是它可以访问的原因。
如果您希望它不可访问,则需要在控制器/服务/工厂/范围内将其声明为本地变量BaseClient
,无论您在何处设置它。因为函数/方法中的局部变量在其范围之外是不可访问的,除非它们被关闭。
这是一个代码版本,它实例化一个函数app.get('/',function(req,res,next){
res.render('index',{});
});
(不再是一个提供者,只是一个常规函数),它包含一个无法触及的局部变量。同样,我不知道这是否是您所追求的,因为我不知道您正在尝试解决哪个问题。