首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角2中的$implicit是什么?

角2中的$implicit是什么?
EN

Stack Overflow用户
提问于 2017-07-12 10:39:51
回答 4查看 31.4K关注 0票数 65

如何在angular2 ng模板中使用以下关键字

  • $implicit在角2模板中的用途是什么?
  • let-<attribute>$implicit的关系是什么?
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-07-12 10:58:25

可以通过ng-template通过let-name定义局部变量。

当角通过调用createEmbeddedView创建模板时,它还可以传递将在ng-template中使用的上下文

在上下文对象中使用键$implicit将其值设置为默认值。所以如果我们写:

代码语言:javascript
复制
vcRef.createEmbeddedView(template, { $implicit: 'value' })

我们有模板

代码语言:javascript
复制
<ng-template let-foo> 
 {{ foo }}
</ng-template>

然后我们可以把它想成

代码语言:javascript
复制
<ng-template let-foo="$implicit"> 
  {{ foo }}
</ng-template>

所以foo将等于value

柱塞实例

另一方面,如果我们有这样的背景:

代码语言:javascript
复制
{ bar: 'value' }

我们必须声明如下的变量:

代码语言:javascript
复制
let-foo="bar"
票数 96
EN

Stack Overflow用户

发布于 2018-10-08 04:16:54

对于多个变量,您应该执行如下操作,模板如下:

代码语言:javascript
复制
<ng-template [ngTemplateOutlet]="template" [ngTemplateOutletContext]="{$implicit: 'Hello', key2: 'value2', key3: 'value3'}"> </ng-template>

然后

代码语言:javascript
复制
<ng-template #template let-default let-key2="key2" let-key3="key3">
{{default}}
{{key2}}
{{key3}}
</ng-template>

所以,输出将是,

代码语言:javascript
复制
default = Hello
key2 = value2
key3 = value3
票数 15
EN

Stack Overflow用户

发布于 2019-07-23 20:35:41

如果您只需要从要引用它的容器中向模板传递一个变量,我们可以使用

代码语言:javascript
复制
<ng-container *ngTemplateOutlet="deleteClient;context: firstName">
</ng-container>

像这样使用它。

代码语言:javascript
复制
<ng-template #deleteClient let-client="firstName">
Are you sure? Want to remove {{ client }} !
</ng-template>

当您必须将对象self传递给模板时,我们可以使用

代码语言:javascript
复制
<ng-container *ngTemplateOutlet="deleteClient;context: { $implicit: client }"> 
</ng-container>

像这样使用它。

代码语言:javascript
复制
<ng-template #deleteClient let-client>
Are you sure? Want to remove {{ client.firstName }} {{ client.lastName }}!
</ng-template>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45055384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档