2015-11-19 70 views
0

AngularJS代码风格的问题。 我有一个角模块:何处放置角度控制器的内部功能?

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'部分?

+0

如果你想重用'整个角应用MenuControllerFunctions'你可以使用它作为一个服务或工厂。如果你想保持你的方法是私人的,只需在控制器的匿名函数定义的上下文中包含它? –

回答

0

在我看来,你必须做这样的

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

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

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

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