angular 中指令能实现正则吗?

我现在想写一个在模板中申明临时变量的指令,可以像ng-template那样let-name="";但是我试了一下不可用[let-*]来实现,那ng-template中的let-是怎么搞的呢?
求指导

回复
阅读 1.3k
2 个回答
import { Directive, ViewContainerRef, TemplateRef, Input } from '@angular/core';

@Directive({
  selector: '[let]'
})
export class ExpAsDirective {
  _context: any = {name: 'wei', tt: '1ttvalue   '};
  private _thenTemplateRef: TemplateRef<any>|null = null;
  @Input() public set letContext(val) {
    this._context = val;
    this._updateView();
  }
  constructor(private _viewContainer: ViewContainerRef, templateRef: TemplateRef<any>) {
    this._thenTemplateRef = templateRef;
  }
  private _updateView() {
    this._viewContainer.clear();
    this._viewContainer.createEmbeddedView(this._thenTemplateRef, this._context);
  }
}

使用


<div *let="let tt = tt;let age1 = age;context: {tt: name, age: 12}">{{tt}}-------{{age1}}</div>
<input [(ngModel)]="name">

就是比较麻烦

宣传栏