我试图了解ngIf定义的"as local-var"可选行为在哪里,例如:
*ngIf="user$ | async as user"
尝试在源代码中查看明显的位置,例如 https://github.com/angular/angular/blob/master/packages/common/src/directives/ng_if.ts
但代码中没有任何内容,只有文档.
有没有人知道这个魔法发生在代码中的哪个位置?
我一直在Angular 2做一个todo应用程序来掌握概念...... value="{{todo.title}}"和之间的区别是[value]="todo.title"什么?
我有一个简单的组件,它通过名为的自定义指令在延迟后注入数字 *appDelay
我已经知道这*是 Angular 将语法去糖化为类似的提示
<ng-template ...>
...actual markup
</ng-template>
Run Code Online (Sandbox Code Playgroud)
我也知道我们可以将组件/模板注入到viewContainervia :
this.viewContainerRef.createEmbeddedView/Component(this.templateRef);
Run Code Online (Sandbox Code Playgroud)
指令代码是:
@Directive({
selector: '[appDelay]'
})
export class DelayDirective {
constructor(
private templateRef: TemplateRef<any>,private viewContainerRef: ViewContainerRef
) { }
@Input() set appDelay(time: number): void {
setTimeout(()=>{
this.viewContainerRef.createEmbeddedView(this.templateRef);
}, time);
}
}
Run Code Online (Sandbox Code Playgroud)
文档指出:
要访问 Element 的 ViewContainerRef,您可以在 Element 上放置一个注入了 ViewContainerRef 的指令,也可以通过 ViewChild 查询获取它。
题:
在一般的伪形式中:什么是模板“字符串值”templateRef和viewContainerRef?
恕我直言,脱糖模板将类似于:
<ng-tempalte ...>
<card *appDelay="500 * item">
{{item}}
</card>
</ng-template>
Run Code Online (Sandbox Code Playgroud)
所以 ViewContainerRef将是对<ng-tempalte …