如何使用 EmbeddedViewRef 的上下文变量 [英] How to use an EmbeddedViewRef's context variable

查看:38
本文介绍了如何使用 EmbeddedViewRef 的上下文变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有点不确定如何使用 EmbeddedViewRefcontext 变量.从我从 Angular 2 的更新日志中收集的信息来看,context 变量取代了 setLocalgetLocal 方法作为在嵌入式视图中设置局部变量的机制.

看了这篇博文后,它使用了 setLocal,我拼凑了以下最小的例子:

import { Directive, TemplateRef, ViewContainerRef } from '@angular/core'导出类 FooTemplateContext {构造函数(公共栏:字符串,公共巴兹:字符串,公共 qux:字符串){}}@指示({选择器:'[foo]'})出口类 Foo {构造函数(viewContainerRef:ViewContainerRef,templateRef:TemplateRef<FooTemplateContext>){let context = new FooTemplateContext('bar', 'baz', 'qux');让视图 = viewContainerRef.createEmbeddedView(templateRef, context);}}

<小时>

从@angular/core"导入 {Component, NgModule}从@angular/platform-b​​rowser"导入 {BrowserModule}从 './foo.directive' 导入 { Foo }@成分({选择器:'我的应用',模板:`<div><div *foo><ul><li>{{bar}}</li><li>{{baz}}</li><li>{{qux}}</li>

`,指令:[Foo]})出口类应用{构造函数(){}}@NgModule({进口:[浏览器模块],声明:[应用程序],引导程序:[应用程序]})导出类 AppModule {}

可以在此处找到此示例的 plunker.当列表呈现时,每个列表项都是空的.我是否以错误的方式考虑了 context 或设置不当?如果是这样,请告诉我.

解决方案

您需要声明变量并为其分配上下文的属性:

规范形式: