それでは、私がやってみたかったことは、このようなテンプレートを使用して簡単な条件ラッパーコンポーネントを持つことです。角度の状態で子コンポーネントの初期化を抑制する方法はありますか?
<ng-container *ngIf="condition; else falseCondition">
<ng-content *ngIf="condition"></ng-content>
</ng-container>
<ng-template #falseCondition>
<div class="div">
<div class="col-xs-12">
<p translate="translate" class="text-center">{{message}}</p>
</div>
</div>
</ng-template>
と私はこのようにそれを使用したい:someCondition
がfalseの場合でも、しかし、
<myComponent [condtion]="someCondition" [message]="some message">
<someOtherComponent [bindings]....></someOtherComponent>
</myComponent>
とsome message
が期待通りに表示され、someOtherComponent
が初期化されます。初期化を控える方法はありますか? condition
が偽であれば、それはまったく作成されないことを望んでいました。
ラッパーコンポーネントを使用しないと(下のように)、普通の*ngIf
のelseテンプレートを使用すると、期待どおりに動作します。他のコンポーネントはまったく初期化されません。
<ng-container *ngIf="someCondition">
<!-- this works just fine -->
<someOtherComponent [bindings]....></someOtherComponent>
</ng-container>
は '[条件]' someOtherComponent'内部と 'myComponentというを残すを入れてみてください'空。これはDOMからあなたの 'someOtherComponent'を破壊するはずです(そして初期化を避ける)が、あなたの' myComponent'はDOM内に残ります(内部に他のものがなければ空です)。より具体的には、コントローラを@Input()の状態で使用する必要があります。 –
@LucaTaccagni条件について興味深いのは何もありません。その入力だけは何もない。あなたはそこにもfalseを置くことができ、コンテンツ投影が必要な場合は、それを防ぐ方法がないので、 – Antoniossss
が動作するはずです。 –