AngularJS控制器功能的最佳实践

问题描述:

如果我想从一个模板参考我的角度控制器的功能,我应该把功能$scope,就像这样:AngularJS控制器功能的最佳实践

[template] 
<button ng-click="doSomething()"></button> 

[controller] 
$scope.doSomething = function(){}; 

但对于其他功能(和控制变量我不需要看),那些我不会在模板中引用的。

我是否应该将它们都放在'$ scope'中? 性能不好吗? 在$scope之外声明这些函数有什么问题吗?

+1

你不应该把他们的范围。只需在控制器中定义它们就像常规函数和变量。 –

+0

@MadhurAhuja like'this.myFunction = ..'或'var myFunction = ...'? – Anri

+0

我更喜欢函数myFunction(){...}。 'var myFunction = ...'的问题是它只能在声明的地方被调用。 –

您可以简单地将它们定义为控制器功能中的专用功能。

请注意,我也赞成函数声明语法,而不是因为它可以让你有在想看看发生了什么事情时减少认知负荷底部宣布所有的函数分配函数表达式的变量。

app.controller('MainCtrl', function ($scope) { 
    $scope.exposedFn = exposedFn; 

    function exposedFn() { 
     fnNotExposed(); 
    } 

    function fnNotExposed() {} 

});