Не удается передать переменную @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..

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


person Adna Tahić    schedule 10.08.2018    source источник
comment
Я думаю, вы должны удалить одинарные кавычки в шаблоне HTML, чтобы: [input1]="'value1'" стало [input1]="value1"   -  person JDTLH9    schedule 10.08.2018
comment
@JDTLH9 JDTLH9, который будет работать, только если свойство определено в родительском компоненте с именем value1, в противном случае это вызовет ошибку компиляции.   -  person UncleDave    schedule 10.08.2018
comment
@UncleDave согласился, и в приведенном выше коде это явно так.   -  person JDTLH9    schedule 20.08.2018


Ответы (1)


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

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

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

or:

@Input('input1') value1: any;
@Input('input2') value2: any;
person justMe    schedule 10.08.2018