У меня есть структурная директива с внешними параметрами:
<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