Как получить строку пути привязки компонента Angular? - PullRequest
0 голосов
/ 05 декабря 2018

Самый простой и полный пример здесь можно найти здесь: https://stackblitz.com/edit/angular-gbenfj

Нам нужен простой компонент, который выполняет 4 вещи в зависимости от пути привязки:

  1. отображает значение вinput
  2. добавить i18n
  3. Скрытие безопасности, когда пользователю не разрешено видеть поле
  4. Завершение кода на model.us => model.user ...

Мы хотим что-то вроде этого:

<app-input [value]="model.user.name"></qcr-input>

Что в фоновом режиме делает:

<div class="form-group form-material floating" *permission="requiredAuthority">
  <input type="text" class="form-control" [value]="value" name="{{value}}"/>
  <label class="floating-label">{{label}}</label>
</div>

Разрешение * - это директива, которая не отображает компонент, есливошедший в систему пользователь не имеет такого разрешения.

export class InputComponent implements OnInit {

  @Input()
  public value: string;

  public label: string;

  public requiredReadAuthority: string;

  ngOnInit() {
    let path = // HOW TO GET model.user.name here to be able to do the rest generate requiredAuthority 'model.user.name__READ' AND ge the label for key 'model.user.name'?
    // path should be 'model.user.name' here.
    this.requiredReadAuthority = this.path + '__READ';
    this.label = this.someServiceToGeti18n(this.path);
  }
}

Я думаю, что это можно сделать с помощью директив, но информации об этом мало, поскольку речь идет о получении фактической строки на основе углового каркасного кода model.user.name в директиве.

Любая помощь будет отличной!

1 Ответ

0 голосов
/ 05 декабря 2018

После ваших комментариев я сделал stackblitz , который может делать то, что вы хотите.недостаток заключается в том, что вы должны знать, какие компоненты будут использоваться (в примере, AppComponent и HelloComponent), чтобы внедрить их.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...