Size: a a a

Angular - русскоговорящее сообщество

2020 March 03

L

Let me take you into... in Angular - русскоговорящее сообщество
Либо у тебя ИДЕ не индексируется
источник

L

Let me take you into... in Angular - русскоговорящее сообщество
И так далее
источник

IG

Ilya Grudsky in Angular - русскоговорящее сообщество
Короче, домохозяйка докладывает.

tsconfig.json, внутри была конфигурация (первый стриншот), удалил её, заменил все импорты на "@angular/core" (второй скриншот). После этого в некоторых местах в onInit все еще undefined, но в AfterViewInit уже нормально все, как temporary solution заменю везде на AfterViewInit (где нормально не работает)
источник

IG

Ilya Grudsky in Angular - русскоговорящее сообщество
источник

L

Let me take you into... in Angular - русскоговорящее сообщество
Ilya Grudsky
Короче, домохозяйка докладывает.

tsconfig.json, внутри была конфигурация (первый стриншот), удалил её, заменил все импорты на "@angular/core" (второй скриншот). После этого в некоторых местах в onInit все еще undefined, но в AfterViewInit уже нормально все, как temporary solution заменю везде на AfterViewInit (где нормально не работает)
OnInit Будет андефайнд если нету статик тру
источник

IG

Ilya Grudsky in Angular - русскоговорящее сообщество
Let me take you into the light
OnInit Будет андефайнд если нету статик тру
Да, ты прав, там, где у меня все в OnInit оно просто "успевает" отрендерить пока там доп. логика отрабатывает. Значит везде на AfterViewInit заменю. Благодарю. Но перед этим, тварь, не работало, пока эту фигню с tsconfig.json не убрал.
источник

DT

Dmitry Teplov in Angular - русскоговорящее сообщество
Ilya Grudsky
Да, ты прав, там, где у меня все в OnInit оно просто "успевает" отрендерить пока там доп. логика отрабатывает. Значит везде на AfterViewInit заменю. Благодарю. Но перед этим, тварь, не работало, пока эту фигню с tsconfig.json не убрал.
Если не секрет, зачем эта фигня была нужна?
источник

IG

Ilya Grudsky in Angular - русскоговорящее сообщество
Dmitry Teplov
Если не секрет, зачем эта фигня была нужна?
Я, когда пробовал переезжать на Angular 9 (еще давненько), не смог, из-за каких-то exceptions. Начал гуглить -> нагуглил это "решение", оно помогло избавиться от некоторых exceptions но потом "заглохло", в итоге. Ну я и забил, назад не вернул, так как и так все работало. Такие дела.
источник

ПА

Попов Алексей... in Angular - русскоговорящее сообщество
Здравствуйте, подскажите, я немного недопонимаю... Создаю свой "алерт", папка alert содержит:
alert.component.ts
alert.component.html - здесь верстка окна
alert.service.ts
Теперь не понимаю, как мне этот алерт вызывать из сервиса. Т.е. как сделать, чтобы этот алерт подгружался в шаблон и как его удалять от туда
ЗЫ: Я не юзаю material и др. в случае с материал там понятно, просто вызвать метод open. Но мне получается надо свой метод open. Т.е. как в шаблон динамически вставлять этот компонент и убивать его, чтобы даже в интерцепторе юзать
источник

ПА

Попов Алексей... in Angular - русскоговорящее сообщество
я так понимаю просто обычными методами document.body.appendChild в компоненте присвоить некий id, чтобы находить и грохать его. или как то по другому
источник

A

Alexander in Angular - русскоговорящее сообщество
Попов Алексей
я так понимаю просто обычными методами document.body.appendChild в компоненте присвоить некий id, чтобы находить и грохать его. или как то по другому
Алерт не обязательно делать динамическим, можно сделать его компонентом с жизненным циклом как у приложения. Положить куда-то в корне, сделать в нем ngIf например, и подписаться на alertService.alert.asObservable()
источник

ПА

Попов Алексей... in Angular - русскоговорящее сообщество
Alexander
Алерт не обязательно делать динамическим, можно сделать его компонентом с жизненным циклом как у приложения. Положить куда-то в корне, сделать в нем ngIf например, и подписаться на alertService.alert.asObservable()
сделал компонент с версткой, сделал компонент в котором
ngOnInit(): void {
       document.body.appendChild(this.element.nativeElement);
       this.alertService.attach(this);
   }

   ngOnDestroy(): void {
       this.element.nativeElement.remove();
   }
Сделал сервис в котором метод
public attach(modal) {
       this.modal = modal;
   }
public show(message: string, title: string = 'Внимание!'): void {
       this.modal.show(message, title);
   }

   public close(): void {
       this.modal.close();
   }
теперь пытаюсь вызвать метод show, но говорит, что нет такого метода. т.е. не выполняется в компоненте метод
ngOnInit()
как отдельно сделать, чтобы не писать в шаблон, а динамически чтобы
источник

ПА

Попов Алексей... in Angular - русскоговорящее сообщество
или мне надо модуль создать и в нем сделать bootstrap
источник

A

Alexander in Angular - русскоговорящее сообщество
Попов Алексей
сделал компонент с версткой, сделал компонент в котором
ngOnInit(): void {
       document.body.appendChild(this.element.nativeElement);
       this.alertService.attach(this);
   }

   ngOnDestroy(): void {
       this.element.nativeElement.remove();
   }
Сделал сервис в котором метод
public attach(modal) {
       this.modal = modal;
   }
public show(message: string, title: string = 'Внимание!'): void {
       this.modal.show(message, title);
   }

   public close(): void {
       this.modal.close();
   }
теперь пытаюсь вызвать метод show, но говорит, что нет такого метода. т.е. не выполняется в компоненте метод
ngOnInit()
как отдельно сделать, чтобы не писать в шаблон, а динамически чтобы
Это антипаттерны. Сервис не должен знать ничего о компоненте, это просто модель. В компоненте на ините надо подписаться на сервер, потом отписаться. И сам компонент должен решать что показывать, он вьюшка, отображение состояния модели.

Для простоты стоит сделать чтобы он всегда показывался, вызывая сам в себе this.displayAlert(), потом если это будет работать на ините добавить подписку и уже по подписке показывать или скрывать.
источник

ПА

Попов Алексей... in Angular - русскоговорящее сообщество
Alexander
Это антипаттерны. Сервис не должен знать ничего о компоненте, это просто модель. В компоненте на ините надо подписаться на сервер, потом отписаться. И сам компонент должен решать что показывать, он вьюшка, отображение состояния модели.

Для простоты стоит сделать чтобы он всегда показывался, вызывая сам в себе this.displayAlert(), потом если это будет работать на ините добавить подписку и уже по подписке показывать или скрывать.
ок. так а как мне сделать то, т.е. я описал компонент, описал методы show(), close(). Как теперь из сервиса вызвать их из компонента и кроме того, чтобы компонент сам в шаблон добавлялся, а не задавать в шаблоне директиву компонента
источник

ПА

Попов Алексей... in Angular - русскоговорящее сообщество
я понимаю, что это антипаттерн, сервис первоначально и не знает о компоненте, это компонент в ините добавляет в переменную сервиса экземпляр компонента
источник

A

Alexander in Angular - русскоговорящее сообщество
При ngIf=falsе дом не будет отрисован, фактически appendChild() removeChild() это тоже велосипед вместо готовых средств фреймворка
источник

ПА

Попов Алексей... in Angular - русскоговорящее сообщество
Alexander
При ngIf=falsе дом не будет отрисован, фактически appendChild() removeChild() это тоже велосипед вместо готовых средств фреймворка
блин, просто у material UX/UI ангуляра, модалка сделана так, что директиву объявлять не нужно, можно создать сервис и вызывать ее, не надо нигде эту модалку в шаблон пихать, где надо там и вызвал, там она и создается.
Просто хочу разобраться, чтобы свои UX/UI элементы создать
источник

ПА

Попов Алексей... in Angular - русскоговорящее сообщество
я так понимаю, для этого надо делать модуль
источник

A

Alexander in Angular - русскоговорящее сообщество
В сервисе должно быть что-то типа
private shown = new Subject<boolean>()
public isShown() {
return this.shown.asObservable();
}
public show() {
this.shown.next(true);
}
hide() {
this.shown.next(false);
}
источник