2

这是如何从基本提供者(而不是提供者工厂)继承的后续内容. 提议的解决方案建议结合使用angular.extendangular.copy(仅在 Angular 1.4 上可以完成angular.merge)将基本提供程序实现复制到所有其他提供程序。

但这导致了另一个我没有预料到的问题。使用这种技术,我的提供者现在可以通过该provider.setX函数进行配置,以及对属性的直接访问provider.config.x

这是一个演示该问题的示例:

4

1 回答 1

1

不太确定你在追求什么,但this.config.x不是变量而是属性,这就是它可以访问的原因。

如果您希望它不可访问,则需要将其声明为var config = {}控制器/服务/工厂/无论您在哪里设置它的范围内的局部变量。因为函数/方法内部的局部变量在其范围之外是不可访问的,除非它们是闭包。

这是您的代码版本,它实例化了一个函数BaseClient(尽管不再是提供者,只是一个常规函数),其中包含一个无法触及的局部变量。同样,我不知道这是否是您所追求的,因为我不知道您要解决哪个问题。

http://codepen.io/anon/pen/ZGazqo?editors=101

于 2015-06-21T23:37:07.697 回答