【问题标题】:Where to place internal functions of angular controller?角度控制器的内部功能放在哪里?
【发布时间】:2015-11-19 20:00:37
【问题描述】:

AngularJS 代码风格问题。 我有一个 Angular 模块:

angular.module('module', [])
    .controller('ModuleCtrl', function ($scope) {
        var fnc = MenuControllerFunctions;
        $scope.onBtnPressed = fnc.handlerFnc();
    })
;
var MenuControllerFunctions = {
    handlerFnc: function(){
        return function() {
            console.log('Button pressed')
        }
    }
};

handlerFnc 函数应该放在哪里? 在外部变量(如这里)或其他地方? 有什么方法可以将它放在模块中而不是“.controller”部分?

【问题讨论】:

  • 如果您想在整个 Angular 应用程序中重用 MenuControllerFunctions,您可以将其用作服务或工厂。如果你想让你的方法保持私有,那么只需将它包含在控制器的匿名函数定义的上下文中?

标签: javascript angularjs coding-style


【解决方案1】:

在我看来,你必须这样做

angular.module('module', [])
.controller('MenuController', MenuController);

 MenuController.$inject(['$scope']);

 function MenuController ($scope) {
      $scope.onBtnPressed = handlerFnc;

     function handlerFnc(){
         console.log('Button pressed')
    }
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 2014-09-22
    • 2022-07-22
    • 1970-01-01
    相关资源
    最近更新 更多