Javascript 仅在需要时将角度服务注入控制器

Javascript 仅在需要时将角度服务注入控制器,javascript,angularjs,requirejs,Javascript,Angularjs,Requirejs,我尝试实现角度服务、控制器、指令、过滤器的延迟加载,我找到了使用RequireJS做类似事情的方法。但我找不到如何仅在需要时将服务动态加载到控制器中 我的控制器: require(["app"], function (app) { app.controller('dialogsCtrl',function($scope,dialogsSer){ $scope.tooltip = function(){ dialogsSer.tooltip(); // work ok

我尝试实现角度服务、控制器、指令、过滤器的延迟加载,我找到了使用RequireJS做类似事情的方法。但我找不到如何仅在需要时将服务动态加载到控制器中

我的控制器:

require(["app"], function (app) {

  app.controller('dialogsCtrl',function($scope,dialogsSer){
    $scope.tooltip = function(){
      dialogsSer.tooltip(); // work ok
    }
...
我想实现类似的东西(也可能以角度内联方式注入服务):

需要配置:

require.config({
baseUrl: ...,    
paths: {
    ....
    'dialogService':'resources/web/app/services/dialogsSer',
     ...
deps: ['app']
});
对话服务:

require(["app","directives"], function (app) {

  app.service('dialogsSer', function($http,$uibModal){

  var ds = {};
  ...

我在运行时找到了用于插入服务的方法

require(['dialogService','userSer'],function(){
     if(!$rootScope.userSer)$rootScope.userSer = $injector.get("userSer");
     if(!$rootScope.dialogsSer)$rootScope.dialogsSer = $injector.get("dialogsSer");
     $scope.$apply(); 
});
require(['dialogService','userSer'],function(){
     if(!$rootScope.userSer)$rootScope.userSer = $injector.get("userSer");
     if(!$rootScope.dialogsSer)$rootScope.dialogsSer = $injector.get("dialogsSer");
     $scope.$apply(); 
});