我有两个div,每个div都需要一个控制器来处理其中的活动。两个控制器当然都有不同的名称。
这种情况有问题,因为它需要维护两个相同的代码片段。
我正在考虑两种选择,我正在征求意见:
将公共代码部署到一个单独的文件中,使用jQuery,将文件包含到两个控制器中,
使用一个函数创建一个新文件,该函数将接收与控制器相同的参数,并且包含当前托管在两个控制器中的整个逻辑。然后,只需从两个控制器中调用此函数。
在第二个选项中,控制器的主体将成为单个语句,即调用新函数。
从我发现的帖子看,第一个选项确实有效。我的问题是(在我进行重大变更和测试之前):第二种选择是否也能正常运作?如果是,它是否比第一个更好,相当或更差?
虽然如上所述,实际代码与我的问题无关,但我添加了一组样本来说明我的问题,尤其是第二个选项。
所以这是最初的安排:
控制器1
myApp.controller("First_Controller", "$rootScope", "$scope" , [function($rootScope , $scope) {
$scope.Do_Something = function () {
// some code here
}
}
控制器2
myApp.controller("Second_Controller", "$rootScope", "$scope" , [function($rootScope , $scope) {
$scope.Do_Something = function () {
// some code here
}
}
想法是将其转换为:
控制器1 - 新
myApp.controller("First_Controller", "$rootScope", "$scope" , [function($rootScope , $scope) {
Common_Function($rootScope , $scope) ;
}
控制器2 - 新
myApp.controller("Second_Controller", "$rootScope", "$scope" , [function($rootScope , $scope) {
Common_Function($rootScope , $scope) ;
}
其中:
Common_Function = function ($rootScope , $scope) {
$scope.Do_Something = function () {
// some code here
}
}