@sdgroup14

Как реализовать Сервис который отвечает только за набор boolean значений Angular 2-5?

Есть много модалок... есть много кнопок.... я делаю связь через сервис... И не хватает навыков чтоб для каждой модалки-кнопки сделать 1 сервис на все. А не для каждой... пример кода ниже аналогичен для каждой модалки. На данном этапе их 5.


//Service

@Output() change: EventEmitter = new EventEmitter();

categoryModalisOpen = false;

toggleCreateCategoryModal() {
this.categoryModalisOpen = !this.categoryModalisOpen;
this.change.emit(this.categoryModalisOpen);
}

//BtnComponent

constructor(
private CreateCategoryModalService: CreateCategoryModalService
) { }

openCreteCatModal() {
this.CreateCategoryModalService.toggleCreateCategoryModal();
}

//ModalComponent

creatCatIsOpen = false;

ngOnInit() {
this.CreateCategoryModalService.change.subscribe(isOpen => {
this.creatCatIsOpen = isOpen;
});
}

constructor(
private CreateCategoryModalService: CreateCategoryModalService
) { }

  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
rework
@rework
Помог ответ? В благодарность отметь его решением
Как то так:

//Service

@Output() change: EventEmitter[];

categoryModalisOpen[] = [];

toggleCreateCategoryModal(key) {
this.categoryModalisOpen[key] = !this.categoryModalisOpen[key];
this.change[key].emit(this.categoryModalisOpen[key]);
}

//BtnComponent

@ViewChild('modalComponentInstance') // # ссылка на компонент нужного модального окна
modalComponentInstance;

constructor(
private CreateCategoryModalService: CreateCategoryModalService
) { }

openCreteCatModal() {
let key = this.modalComponentInstance.key; // Нужно подключить инстанс окна которое должно открываться по текущей кнопке 
this.CreateCategoryModalService.toggleCreateCategoryModal(key);
}

//ModalComponent

creatCatIsOpen = false;
key: number;

ngOnInit() {
this.key = this.CreateCategoryModalService.categoryModalisOpen.lenght + 1;
this.CreateCategoryModalService.change[this.key].subscribe(isOpen => {
this.creatCatIsOpen = isOpen;
});
}

constructor(
private CreateCategoryModalService: CreateCategoryModalService
) { }


Код не проверял, только в голове прогнал, наверняка есть какие-нибудь ошибки, но главное что бы вы суть идеи поняли.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы