gpt4 book ai didi

AngularJS Controller : Move common code to separate file

转载 作者:行者123 更新时间:2023-12-02 23:54:24 25 4
gpt4 key购买 nike

我有一些带有一些通用代码的 Controller ,特别是对于多个 Controller 来说是相同的 $scope.$watch 。如何将此代码放入单独的文件中,并导入需要此 $watch 的各个 Controller 中的通用代码?

最佳答案

可以通过传入 Controller 的范围来使用服务:

angular.module('app').service("CommonFunctions", ['SomeService', function(SomeService) {
var commonFunctions = {};
commonFunctions.init = function(scope){
scope.$watch(function(){},function(){})
};
return commonFunctions;
}]);

angular.module('app').controller('Ctrl1',
['$scope','CommonFunctions',function($scope,CommonFunctions) {
CommonFunctions.init($scope);
}]);

angular.module('app').controller('Ctrl2',
['$scope','CommonFunctions',function($scope,CommonFunctions) {
CommonFunctions.init($scope);
}]);

这样您就可以使用单个 Controller 的范围,但使用服务中的通用方法。您还可以使用angular.extend($scope, AService)如果您想要实际添加到 Controller 范围的服务的通用功能,请在 Controller 内。

这是一个有效的 fiddle :http://jsfiddle.net/rhcjdb7L/

当然,这非常酷,但是您确定不想使用 $rootscope.$broadcast() ?这写得很好:http://toddmotto.com/all-about-angulars-emit-broadcast-on-publish-subscribing/

关于AngularJS Controller : Move common code to separate file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25936897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com