【发布时间】:2016-08-03 02:58:08
【问题描述】:
我想重复使用如下所示的组件选择器:
@Component({
selector: 'expression-builder',
template: `
<div class="container">
<expression *ngFor="#expression of expressions" [prototypes]="prototypes" [expression]="expression" [expressions]="expressions"></expression>
<a class="btn btn-primary" (click)="addExpression()"><i class="glyphicon glyphicon-plus"></i></a>
</div>
`,
})
但如果我在其他组件中这样设置它不会显示任何内容:
@Component({
selector: 'expression',
template: `
<div class="row">
<!-- First Select -->
<div class="col-xs-3">
<select class="form-control" [(ngModel)]="selectedPrototypeSelector" (ngModelChange)="onPrototypeChange()">
<option *ngFor="#p of prototypes" [value]="p.selector">
{{ p.selectorName }}
</option>
</select>
</div>
<!-- Second Select -->
<div [ngClass]="{'col-xs-3': prototype?.valueType !== 'Set', 'col-xs-2': prototype?.valueType === 'Set'}" *ngIf="prototype">
<select class="form-control" [(ngModel)]="expression.constraint">
<option *ngFor="#constraint of prototype.constraints" [value]="constraint">
{{ constraint }}
</option>
</select>
</div>
<!-- Third Select -->
<div [ngClass]="{'col-xs-3': prototype?.valueType !== 'Set', 'col-xs-2': prototype?.valueType === 'Set'}">
<div>{{expression | json}}</div>
</div>
<div class="col-xs-1">
<a class="btn btn-danger pull-right" (click)="deleteExpression()"><i class="glyphicon glyphicon-remove"></i></a>
</div>
<!-- Expression Set selector -->
<div *ngIf="prototype?.valueType === 'Set'">
<expression-builder></expression-builder>
</div>
</div>
`,
directives: [ExpressionBuilderComponent]
})
如果我在这里设置,我会得到以下错误:
Unexpected directive value 'undefined'
我想在valueType = Set 的情况下重新使用模板
【问题讨论】:
-
我不明白。什么是“选择器元素”?
-
我也看不到组件选择器。完全不知道这个问题是关于什么的。
-
@GünterZöchbauer 哈哈,我明白你为什么不知道这是错误的代码 -.-''
-
这个问题是关于什么的仍然很模糊。你不能在
index.html中使用*ngIf。 -
*ngIf位于我想重用模板的组件中。我正在尝试创建一个 plunkr 向您展示,但它不起作用......
标签: typescript angular components