angular.module('testApp', [])
.controller('ctrl', ctrl);
function ctrl($scope) {
/* -- Public Properties & Methods -- */
$scope.test = test;
/* -- Private Properties & Methods -- */
function test(value) {
console.log(value);
}
}
因为我的代码是在IIFE,你其实可以有一个的function test任何地方内部的块,而不是控制器功能里面:
angular.module('testApp', [])
.controller('ctrl', ctrl);
function ctrl($scope) {
/* -- Public Properties & Methods -- */
$scope.test = test;
}
/* -- Private Properties & Methods -- */
function test(value) {
console.log(value);
}
我刚做了一个按照第二种方式考虑这样做。相当多的时候我们创建了我们希望绑定到DOM的变量:$scope.showOptions。如果我们拥有控制器以外的功能,我们将无法访问此$scope.showOptions,因此您将难以进行询问。通过函数参数请求变量/作用域,可以轻松解决此问题。或者创建一个小包装函数,将派发出来(几乎像双派遣)。
$scope.test = function test() { testImpl($scope.showOptions); };
function testImpl(showOptions) {
console.log(showOptions);
}
这将让你保持所有主繁重的控制器之外,但也引入了复杂性的一个新层,其中一个我知道我一定能做到没有。
所以选择是你的。