2015-08-17 3 views
1

Я пытаюсь реализовать поставщика с TypeScript, который имеет зависимости от служб. Я думаю, что мне нужно внедрить эти службы в функцию get, но как это делается в TypeScript?Реализация поставщика в AngularJS с использованием TypeScript

В JavaScript это реализовано так:

angular.module('HTML5Shell.Services') 
.provider('service', [ 
    'baseService', 
    function (baseService) { 

     return { 
      $get: ['$rootScope', 
       function ($rootScope) { 

        return { 
         method: function (param) { 
          return 'method called'; 
         } 
        }; 
      }] 
     }; 
    }]); 

ответ

3

Я нашел решение - может быть, это и есть искомое решение для реализации поставщика, за исключением использования какого-либо ;-)

module services { 
    'use strict'; 

export class Service { 

     private $rootScope:any; 

     public start($rootScope:any) { 
      this.$rootScope = $rootScope; 
     } 

     public serviceMethod() { 
      this.$rootScope ... 
     } 
} 

export class ServiceProvider implements ng.IServiceProvider { 

     static $inject = ['baseService']; 

     constructor(private baseService:any) { 
     } 

     $get = ['$rootScope', ($rootScope:any) => { 
       var translationService = new Service(); 
       translationService.start($rootScope); 
       return translationService; 
      }]; 

     public configure =() => { 
      this.baseService.method(); 
     } 
} 

    angular 
     .module('Module') 
     .provider('service', ServiceProvider); 
} 
+0

С этим решением вы получаете новый экземпляр для каждой инъекции из-за новой службы(); – Thomas

Смежные вопросы