我遇到md-hint
<md-input-container>
<input mdInput placeholder="Favorite food" [formControl]="anyCtrl">
<ng-container *ngIf="myCond">
<md-hint *ngIf="otherCond" align="end">* Just a hint</md-hint>
</ng-container>
</md-input-container>
的问题。
我想根据条件显示提示,所以我做的是这样的:
md-hint
但它看起来很奇怪,正如您在Material2#input中看到的那样,*ngIf
未在输入底部正确显示,并在我指定的最后对齐。
令我惊讶的是,如果我仅在md-hint
中使用ng-container
(不使用*ngIf
包裹它),则不会发生这种情况[也在 plunker 中描述〜第二个例子〜]。
问题:
我无法直接在md-hint
中使用<ng-container *ngIf="data[key]?.data | async as resolvedData">
<md-hint *ngIf="resolvedData[key]?.length === 0" align="end">Hint</md-hint>
</ng-container>
,因为我的真实情况是:
*ngIf
所以,正如你可以看到我是否将整个表达式转换为<md-hint *ngIf="data[key]?.data | async?[key]?.length === 0" align="end">Hint</md-hint>
,它将如下所示:
*ngIf
哪一个会引发异常,指责模板解析错误( async?[key] ),因为PLUNKER 只接受 dot 语法,我正在处理的那些键是动态的,所以我必须使用 bracket 语法。这就是为什么我要包装成2 md-hint
,正如你在上面看到的那样。
最后,问题是:如果我有一个简单的ng-container
包装它,为什么TAP
的风格会有所不同?这是一个错误吗?
提前致谢。