2017-01-04 3 views
0

В AngularJS я был в состоянии сделать это:Угловой функции обслуживания 2 запуска перед другими функциями

angular.module('myApp').service('myService', [ function() { 
    this.loadConfiguration = function() { 
    }; 

    this.loadConfiguration(); 
}]); 

Как достичь того же, вызова одной функции перед другими в службе, в угловых 2 в машинописном?

Я пробовал:

@Injectable() 
export class ChatService { 
    ngOnInit() { 
     this.loadConfiguration(); 
    } 

    loadConfiguration() { 
    } 

} 

И это не работает.

+2

Пытались ли вы назвать его в конструктор? Нет никаких угловых2 крючков для обычного класса – yurzui

+2

try 'constructor()' – anshuVersatile

ответ

5

Крюки для жизненного цикла не существуют для инъекций. Поэтому вместо использования крючков жизненного цикла, таких как ngOnInit, в @Injectables, используйте конструктор.

@Injectable() 
export class ChatService { 
    constructor() { 
     this.loadConfiguration(); 
    } 

    loadConfiguration() { 
    } 

} 

Директива и компоненты экземпляры имеют жизненный цикл, как создают Угловая, обновление, и уничтожает их. Разработчики могут использовать ключевые моменты в этом жизненном цикле, реализуя один или несколько интерфейсов Lifecycle Hook в библиотеке с угловым ядром.

Ref: https://angular.io/docs/ts/latest/guide/lifecycle-hooks.html

+0

@DanielStradowski, вы имеете в виду, что каждый раз, когда вы вводите эту инъекцию, вы хотите, чтобы этот конструктор запускался? – echonax

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