update 3
Issue 2451 is fixed in Angular 4.0.0
See also
update 2
This isn't supported.
There are template variables but it's not supported to assign arbitrary values. They can only be used to refer to the elements they are applied to, exported names of directives or components and scope variables for structural directives like ngFor
,
See also https://github.com/angular/angular/issues/2451
Update 1
@Directive({
selector: '[var]',
exportAs: 'var'
})
class VarDirective {
@Input() var:any;
}
and initialize it like
<div #aVariable="var" var="abc"></div>
or
<div #aVariable="var" [var]="'abc'"></div>
and use the variable like
<div>{{aVariable.var}}</div>
(not tested)
#aVariable
creates a reference to the VarDirective
(exportAs: 'var'
)var="abc"
instantiates the VarDirective
and passes the string value "abc"
to it's value input.aVariable.var
reads the value assigned to the var
directives var
input.