在AngularJS控制器中创建私有方法的方法是什么?
我目前这样做了,但我想知道这是否是正确/可取的方式:
app.controller('MyController', function($scope){
myPrivateFunction();
anotherPrivateFunction();
...
$scope.someScopeMethod = function(){
...
anotherPrivateFunction();
...
};
$scope.anotherScopeMethod = function(){
...
myPrivateFunction();
...
};
...
function myPrivateFunction(){
//
}
function anotherPrivateFunction(){
//
}
});
答案 0 :(得分:4)
这是对的。您的函数只能在控制器构造函数的范围内可见。对于工厂和vanilla js来说,这是相同的,其中在函数中声明的函数只能在其父函数上下文中可见。
答案 1 :(得分:1)
在工厂中它看起来如下:
.factory('my-factory', function(){
function privareMethodA() {
}
var anotherPrivateMethod = function() {
}
return {
publicMethodA = function() {
},
publicMethodB = function() {
}
};
});
因此,在您将工厂注入另一个工厂或控制器publicMethodA()
并且publicMethodB()
可用后,但privateMethodA()
和anotherPrivatemethod()
无法访问在这家工厂外面。
控制器的可访问性与您的代码段类似。