我有一个递归的模板,类似于下面的内容:
<ng-container *ngTemplateOutlet="testTemplate; context: {$implicit:jsonObj1}">
</ng-container>
<ng-template #testTemplate let-Json1>
</ng-template>
它工作正常,我使用$ implicit发送jsonObj1,但我想发送两个参数,如果我尝试:
context: {$implicit:jsonObj1, $implicit:jsonObj2}
并尝试使用
进行访问<ng-template #filterTemplate let-Json1 let-json2>
</ng-template>
如果传递两个参数,它不起作用。
答案 0 :(得分:7)
您不需要使用$implicit
您可以使用
1:
context: {$implicit:jsonObj1, b:jsonObj2}
带
<ng-template #filterTemplate let-Json1 let-json2="b">
<div>{{json1}}</div></div>{{json2}}</div>
</ng-template>
或2:
context: {$implicit: {a: jsonObj1, b:jsonObj2}}
与
<ng-template #filterTemplate let-Json1>
<div>{{json1.a}}</div></div>{{json1.b}}</div>
</ng-template>
或3:
context: {a:jsonObj1, b:jsonObj2}
与
<ng-template #filterTemplate let-Json1="a" let-json2="b">
<div>{{json1}}</div></div>{{json2}}</div>
</ng-template>
答案 1 :(得分:1)
这里有更多(类似)选项,其中包括使用“ ngTemplateOutletContext”和一个条件(第4个参数-为好玩)。
...尝试-应该通过复制和粘贴来工作...
<!-- DEMO using:
"=templateID; context:{prop:value, ...}"
( 4 arguments demo)
Note: $implicit identifies the default argument in the template.
The template does not need to assign the argument name,
- see the 3rd argument
-->
<div *ngFor="let item of ['Aaa', 'Bbb', 'Ccc']; index as ix">
<ng-container *ngTemplateOutlet="myTemplate1;
context:{cDemoName:'Option 1:',
cIx:ix+1,
$implicit:item,
cIsEven: ((ix % 2) === 0) ? 'true' : 'false' }">
</ng-container>
</div>
<hr>
<!-- DEMO using:
[ngTemplateOutlet]="templateID"
[ngTemplateOutletContext]="{"=templateID; context:{prop:value, ...}"
-->
<div *ngFor="let item of ['Dddd', 'Eee', 'Fff']; index as ix">
<ng-container [ngTemplateOutlet]="myTemplate1"
[ngTemplateOutletContext]="{
cDemoName:'Option 2',
cIx:ix+1,
$implicit:item,
cIsEven: ((ix % 2) === 0) ? 'true' : 'false' }
">
</ng-container>
</div>
<!-- DEMO template:
( 4 arguments expected)
-->
<ng-template #myTemplate1
let-cDemoName="cDemoName"
let-cIx="cIx"
let-cItem
let-cIsEven="cIsEven">
Context arguments demo name: {{cDemoName}} <br>
. . . . . Context index: {{cIx}} <br>
. . . . . Context item: --- {{ cItem }} --- <br>
. . . . . Context is-even: {{ cIsEven }} <br>
<br>
</ng-template>