Javascript AngularJS控制器功能最佳实践
如果我想从模板中引用角度控制器函数,我应该将该函数放入Javascript AngularJS控制器功能最佳实践,javascript,angularjs,Javascript,Angularjs,如果我想从模板中引用角度控制器函数,我应该将该函数放入$scope,如下所示: [template] <button ng-click="doSomething()"></button> [controller] $scope.doSomething = function(){}; [模板] [控制器] $scope.doSomething=function(){}; 但是其他函数(以及我不需要关注的控制器变量)呢,这些我在模板中不会引用的函数呢 我应该把它们都放在
$scope
,如下所示:
[template]
<button ng-click="doSomething()"></button>
[controller]
$scope.doSomething = function(){};
[模板]
[控制器]
$scope.doSomething=function(){};
但是其他函数(以及我不需要关注的控制器变量)呢,这些我在模板中不会引用的函数呢
我应该把它们都放在“$scope”里吗?
这对性能不是很坏吗?
在
$scope
之外声明这样的函数有什么困难吗?您可以简单地将它们定义为控制器函数中的私有函数
请注意,我也喜欢函数声明语法,而不是将函数表达式赋给变量,因为它允许您在底部声明所有函数,从而在尝试查看发生了什么时减少认知负载
app.controller('MainCtrl', function ($scope) {
$scope.exposedFn = exposedFn;
function exposedFn() {
fnNotExposed();
}
function fnNotExposed() {}
});
你不应该把它们放在范围之内。只需在控制器内部定义它们,如常规函数和变量。@MadhurAhuja,如
this.myFunction=..
或var myFunction=..
?我更喜欢function myFunction(){..
。var myFunction=…
的问题在于只能在声明后调用它。this.myFunction
将是作用域的一部分。@charlietfl的意思是:-签出;)