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

У меня есть структурная директива с внешними параметрами:

<code><div  *permissionIf ="fromMain,another: AnotherMain ;let m;"   >
     <pre>
       {{m | json}}
     

Где в основном компоненте у меня есть:

  public fromMain = '...fromMain';
  public AnotherMain = "...AnotherMain";

Тогда как вdirective У меня есть:

  @Input('permissionIf') input1: any;
  @Input('permissionIfAnother') input2: any;

И затем я создаю представление:

const context = { $implicit: { num: 2, value: this.input1, another: this.input2, mmmVal: "HOW ?" } };
let h = this.viewRef.createEmbeddedView(this.templateRef, context);

И так - я действительно вижу переданные значения правильно:

{
  "num": 2,
  "value": "...fromMain",
  "another": "...AnotherMain",
  "mmmVal": "HOW ?"
}

Все в порядке

Но теперь я хочу добавить атрибут в структурную директиву: (уведомление mmm="3")

<div  *permissionIf ="fromMain,another: AnotherMain ;let m;" mmm="3" >
  ...
</div>

Вопрос:

Как я могу получить значение этого атрибута в коде структурной директивы в context?

Мне удалось получить его через:

ngOnInit () {

const context = { $implicit: { num: 2, value: this.input1, another: this.input2, mmmVal: "HOW ?" } };
let h = this.viewRef.createEmbeddedView(this.templateRef, context);
console.log(h.rootNodes[0].getAttribute('mmm')); //3

}

Но сейчас я не могу передать егоcontext.

Как установить значение атрибута в контексте?

Я ожидаю увидеть:

{
  "num": 2,
  "value": "...fromMain",
  "another": "...AnotherMain",
  "mmmVal": "3"  <------
}

OnlineDemo

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