2016-07-07 3 views
3

をロードします。ngIf =は、まだ次のように単純なコンポーネントを定義するテンプレートバインディング

@Component({ 
    selector: 'loader', 
    template: `<div *ngIf='false'> 
     <ng-content></ng-content> 
     </div>`, 
}) 
export class Loader {} 

このようにそれを使用する場合:モデルに定義されていない場合、私はまだテンプレートがエラーを結合ます

<loader> 
     {{model.something}} 
    </loader> 

親は、ngIf=falseでバインディングを解決しようとします。これはなぜですか?

答えて

1

ngContent要素内に投影しようとしているloaderコンポーネントの内部コンテンツは、コンポーネントテンプレートがDOMに挿入されていない場合でも、現在のコンポーネントコンテキスト(this)で1回コンパイルされます。

それは `でも)あなたはこのような問題に

<loader> 
    {{model?.something}} 
</loader> 
+0

を避けるために、ここでElvis Operatorを使用する必要がありますそして、あなたはまだ' @ContentChild(とそれを照会することができる角度1.Xにng-transclude作品として

を同じように動作します''要素に変換されません。それはDOMに追加されないだけです。 –

関連する問題