AngularJS控制器具有最佳实践

时间:2014-11-16 13:51:57

标签: javascript angularjs

如果我想从模板中引用我的角度控制器函数,我应该将函数放在$scope中,如下所示:

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

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

但是其他功能(以及我不需要观看的控制器变量),我不会在模板中引用的那些功能呢。

我是否应该将它们全部放入“$ scope”? 表现不是很糟糕吗? 在$scope之外声明这些功能是否有任何问题?

1 个答案:

答案 0 :(得分:5)

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

请注意,我也支持函数声明语法,而不是将函数表达式赋给变量,因为它允许您在底部声明所有函数,从而在尝试查看正在进行的操作时减少认知负担。

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

  function exposedFn() {
      fnNotExposed();
  }

  function fnNotExposed() {}

});