получить привязку элемента внутри структурной директивы - PullRequest
0 голосов
/ 06 января 2019

У меня есть структурная директива, которая преобразует Select в label , если массив, который заполняет параметры выбора, имеет только один элемент. Этот массив может быть массивом объектов или массивом строк. Мне интересно, возможно ли получить привязку внутри директивы

<select  *convertToText="deltas" >
   <option [value]="" [selected]="true"> - Select  -</option>
   <option *ngFor="let delta of deltas" [value]="delta">
     {{delta.type | formatType}}
   </option>
</select>

Можно ли получить вывод «delta.type | formatType» в директиве? труба может быть необязательной. Если массив является String, привязка будет просто {{delta}}

Вот так выглядит моя директива

@Input() set convertToText(options: Array<any>) {
  if(options.length > 1 ) {
    this.viewContainer.createEmbeddedView(this.templateRef);
  } else {
    this.viewContainer.remove();
    let compFactory = this.resolver.resolveComponentFactory(OptionTextComponent);
    let component = this.viewContainer.createComponent(compFactory);
    component.instance.optionValue = options[0];
  }
}

Если есть альтернативный подход, пожалуйста, дайте мне несколько указаний Спасибо за ваше время.

1 Ответ

0 голосов
/ 06 января 2019

Есть и другая альтернатива: вы можете создать компонент, который будет принимать список в качестве входных данных и отображать выбор или метку, используя * ngIf или * ngSwitch.

...