我有一个带有外部参数的结构指令:
<div *permissionIf ="fromMain,another: AnotherMain ;let m;" >
<pre>
{{m | json}}
</pre>
</div>
我在主要组件中的位置:
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" <------
}