Не удается передать переменную @input в пакете angular 5 npm (созданном с помощью ng-packagr)

Я создал пакет npm из проекта Angular 5, используя ng-packagr, и теперь я пытаюсь установить этот пакет в новом проекте. Я включаю пакет в NgModule нового проекта и использую его следующим образом:

  <created-package 
    [input1]="'value1'"
    [input2]="'value2'"  
  >
  </created-package>

Этот компонент отображает html и включенный css, но поля @Input (input1 и input2) НЕ ОПРЕДЕЛЕНЫ.

Это пример моего component.ts:

import {Component, ElementRef, Input, OnInit} from '@angular/core';

@Component({
  selector: 'created-package',
  templateUrl: './created-package.component.html'
})

export class CreatedPackage implements OnInit {
  @Input() value1: any;
  @Input() value2: any;


  constructor(private router: Router) {

  }

  ngOnInit() {
    console.log(this.value1, this.value2);

  }
}

Это console.logs undefined ..

Если кто знает ответ, буду очень благодарен за ответ! Спасибо!

Я думаю, вам следует удалить одинарные кавычки в шаблоне HTML, чтобы: [input1]="'value1'" превратился в [input1]="value1"

JDTLH9 10.08.2018 16:00

@ JDTLH9, который будет работать только в том случае, если свойство определено в родительском компоненте с именем value1, иначе это вызовет ошибку компиляции.

UncleDave 10.08.2018 18:03

@UncleDave согласился, и это явно так в приведенном выше коде.

JDTLH9 20.08.2018 15:13
1
3
109
1

Ответы 1

Ваши входные переменные внутри компонента должны иметь имя, совпадающее с именем, переданным в html, или вы можете передать псевдоним в @Вход().

либо изменить:

 <created-package 
    [value1]="'value1'"
    [value2]="'value2'"  
 >
 </created-package>

или:

@Input('input1') value1: any;
@Input('input2') value2: any;

Другие вопросы по теме