Angularjs 如何在多个指令中共享控制器?

Angularjs 如何在多个指令中共享控制器?,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我遇到了一些问题。我有一个控制器“searchCtrl”,它有一些应该在指令中使用的范围对象 如果它只有一个指令,它可以用作控制器:“searchCtrl”。但多个组件需要使用第三方提供的searchCtrl(不建议修改ctrl) 我的seachCtrl看起来像 angular.module('asApp').controller('searchCtrl', ['$scope', 'service', function($scope, AppService, qVarService) { ax

我遇到了一些问题。我有一个控制器“searchCtrl”,它有一些应该在指令中使用的范围对象

如果它只有一个指令,它可以用作控制器:“searchCtrl”。但多个组件需要使用第三方提供的searchCtrl(不建议修改ctrl)

我的seachCtrl看起来像

angular.module('asApp').controller('searchCtrl', ['$scope', 'service', function($scope, AppService, qVarService) {

axisAPI.object()
         .app(service.app())
         .qId('abcd')
         .on('create',function(object) {
             object.paint();
         }).on('paint',function(data){
             $scope.$apply(function(){
                                    $scope.profile = data.profile;
                                    $scope.contacts = data.profile;
              })
         }).create();
so 2组件配置文件和触点以及一个通用控制器。根据我的功能,“searchCtrl”执行两次,并在两个指令中得到两次响应 如果在指令html文件中使用ng控制器,则其工作原理与此相同。
如果没有上面的类似内容,我如何在不同的指令中使用{{profile}}和{{{contacts}}


有人建议我在betterway做这件事吗

如果您无法控制控制器,您能否复制代码并将其作为服务或工厂放置,然后重新使用?或者它会改变吗?

searchCtrl
应该是一项服务,因为它们是共享的。无论何时请求控制器,都会实例化它们。您是否控制了
searchCtrl
?我很困惑,如果您控制了它,那么您确实有选择权?如果你真的想共享
searchCtrl
,那么你应该把它变成一项服务。哦,对不起。我不在searchCtrl的控制之下。好吧,我想你只是不能共享控制器。很酷的想法和不同的想法。但不幸的是,我不能使用它,因为这些api调用是基于控制器的。初始化应该发生在控制器内部。在控制器中更新作用域时,我可以在指令中使用$watch吗
angular.module('asApp').controller('searchCtrl', ['$scope', 'service', function($scope, AppService, qVarService) {

axisAPI.object()
         .app(service.app())
         .qId('abcd')
         .on('create',function(object) {
             object.paint();
         }).on('paint',function(data){
             $scope.$apply(function(){
                                    $scope.profile = data.profile;
                                    $scope.contacts = data.profile;
              })
         }).create();