当我在控制台中显示我的控制器(类)时,我看到所有依赖项都是可见的,并且我的依赖项的所有依赖项都可以被范围看到...
但我知道如果我使用函数,那么everthing应该是私有的。
我的问题是:在angularjs(1.6)中创建控制器的最佳方法是什么?类(ES6)和函数之间有什么区别。
答案 0 :(得分:0)
您可以尝试以下模式将这些依赖项保持为私有,而不必将它们全部分配给控制器对象。
function yourControllerFactory(yourDep1, yourDep2, ...) {
class YourController {
constructor() {
// no longer have to assign every dependency to this object
}
...
doSomething() {
yourDep1.doSomethingWithDep();
}
}
return new YourController();
}
module('your-module').controller('yourController', yourControllerFactory);
这样,YourController
的实例将无法访问您注入的依赖项。这种方式类似于过去定义控制器的方式。