Можно ли интерполировать угловые компоненты библиотеки с данными проекта? - PullRequest
0 голосов
/ 25 июня 2019

Я работаю над созданием пользовательской библиотеки угловых компонентов, и у меня возникла проблема.Я создаю компонент в моей библиотеке, который содержит интерполированные данные.В файле .ts этого компонента я объявляю переменную, но присваиваю только тип, так как не хочу значения по умолчанию.(Пример: {{myVar}} myVar: string;}

В самом проекте, в который я импортирую библиотеку, я включаю свой компонент библиотеки в app.component.html и в app.component.ts переопределяюта же самая переменная, но на этот раз со значением. (Пример: myVar: string = "Мои фактические данные"). Однако это не отображается при рендеринге страницы. Я предполагаю, потому что компонент библиотеки все еще смотрит на .tsФайл в библиотеке для значения. Это правильное предположение? Если да, есть ли способ интерполировать компоненты внутри библиотеки с данными из проекта, который ее импортирует?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

Лучший способ сделать это, используя директиву и декоратор ввода.

<mat-table [dataSource]="dataResolved">
.....

@Input() dataResolved: DataResolvedDirective;

@Directive({
  selector: '[dataResolved]'
})
export class DataResolvedDirective{

  constructor( httpClient: HttpClient ) { // OR DI - Existing Service
    }
  @Input() set dataResolved( ) {
        return this.httpClient.get('remote server url + uri');
    }
0 голосов
/ 26 июня 2019

Чтобы связать что-либо со свойством компонента, вам нужно использовать свойства Input ().Как говорится в комментариях @JB Nizet, это фундаментальный момент.Вы можете изучить основы, следуя популярному учебному туру angular.io по героям https://angular.io/tutorial

...