2015-11-19 74 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') 
    } 
};