Angular2没有ng-init

Diz*_*zzy 7 angular

众所周知,Angular2没有ng-init或其他东西.所以,如果我们尝试做类似的事情:

<div #rr="2+2">
 {{rr}}
</div>
Run Code Online (Sandbox Code Playgroud)

我们将得到运行时错误:

Error: There is no directive with "exportAs" set to "2+2"

我正在观看youtube上的一个Angular2开发视频,并看到了完全相同的构造.这是截图: 在此输入图像描述

如何分配用户模板变量?

San*_*nde 5

#rr不等同于ng-init.ng-init已经消失,不会再返回 - 您需要显式初始化组件类中的字段(相当于初始化范围).

您可以使用注释的exportAs属性@Directive.它导出要在父视图中使用的指令.在父视图中,您可以将其绑定到视图变量并使用父类访问它@ViewChild().

您可以在此处阅读有关exportAs的更多信息.

请查看示例演示以实现exportAs到此处.


Thi*_*ier 2

局部变量旨在引用当前 DOM 元素:

<div #elt></div>
Run Code Online (Sandbox Code Playgroud)

或应用于该元素的特定元素:

<div #elt="someDirective" dir></div>
Run Code Online (Sandbox Code Playgroud)

someDirective对应exportAs指令的值:

@Directive({
  selector: '[dir]',
  exportAs: 'someDirective'
})
Run Code Online (Sandbox Code Playgroud)

你不能用它们来定义其他东西。这才是这条消息真正告诉我们的……