AngularJS 控制器功能最佳实践

AngularJS controller functions best practices

本文关键字:最佳 功能 控制器 AngularJS      更新时间:2023-09-26

如果我想从模板引用我的角度控制器函数,我应该把函数放在$scope中,像这样:

[template]
<button ng-click="doSomething()"></button>
[controller]
$scope.doSomething = function(){};

但是其他函数(和我不需要监视的控制器变量)呢,我不会在模板中引用的函数。

我也应该把它们都放在"$scope"中吗?对性能不是不好吗?在$scope之外声明此类功能是否有任何陷阱?

您可以简单地将它们定义为控制器函数中的私有函数。

请注意,我也更喜欢函数声明语法,而不是将函数表达式分配给变量,因为它允许您在底部声明所有函数,从而减少尝试查看正在发生的事情时的认知负荷。

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