По причинам, выходящим за рамки этого вопроса, мне пришлось прекратить использование @injectable
. Я преобразовал свои сервисы, которые его используют, просто вручную обновляя их, а не используя @injectable
, и он работает для всех служб, кроме моей службы, которая использует subscribe
. Моя служба, которая использует подписку, работала до того, как мне пришлось удалить @injectable
. Могу ли я заставить его работать без @injectable
?.Угловая 2 подписаться не работает
Код:
Услуги:
import { Subject } from 'rxjs/Subject';
export class ResultSelectionService {
// Observable string sources
private resultSelectedSource = new Subject();
// Observable string streams
resultSelected$ = this.resultSelectedSource.asObservable();
// Service message commands
selectResult(result: any, place: any) {
this.resultSelectedSource.next({result: result, place: place});
}
}
пользователь услуги (функция selectResult делает выполнение - Good):
//arrow function because when called above "this" is an html element
resultClick = (event) => {
this.resultSelectionService.selectResult(event.data.result, event.data.place);
}
метод, который должен выполнить, но не (код никогда не попадает внутрь result => {
:
constructor() {
this.resultSelectionService = new ResultSelectionService();
this.resultSelectionService.resultSelected$.subscribe(
result => {
this.selectedResult = { result };
$('#result-details-modal').appendTo("body").modal('show');
$('#result-details-modal').on('shown.bs.modal', (e) => {
this.resizeMap();
this.canGetAddress = true;
this.addMarkersToMap(this.map);
//this.bindAutoCompleteToMap();
})
console.log(this.selectedResult.result);
});
}
Могу ли я получить подписанную функцию для выполнения без использования @injectable
? Если нет, как я могу обойти это, создав нечто подобное?
Эти вещи абсолютно не связаны. Вы должны попытаться настроить свою установку. '@Injectable()', как известно, не вызывает никаких проблем. –
Отношения между вызывающим абонентом 'selectResult' и вызывающим 'resultSelected $ .subscribe' в вашем вопросе не совсем понятны. Являются ли они в одном компоненте? Ваше утверждение о том, что вам пришлось прекратить использовать '@ Injectable', касается и предлагает проблему в другом месте. – cartant
@ GünterZöchbauer Что вы предлагаете мне сделать, чтобы настроить мою установку? Я попробовал ваше единственное предложение – BeniaminoBaggins