2017-06-19 24 views
-1

bodyタグにstyle="overflow:hidden"タグを追加する場合は、ボタンをクリックするとコンポーネントが動的に追加されます。この<a>isWriteEmailのクリックで は真となり、その時点でそれはoverflow:hidden コンポーネントからボディにスタイルを動的に追加する方法

体へ
<a href="javascript:void(0)" 
    class="mail-ac-ico" 
    (click)="appComponent.isWriteEmail = true;" 
    data-toggle="tooltip" 
    tooltip="Compose" 
    title="Compose"> 
    <img src="assets/images/icons/icon-open-email.png" 
          alt="email icon"> 
</a> 

を追加する必要があり、この <body *ngIf="isWriteEmail" style="overflow: hidden;">あなたはクラスを作成する必要が

+0

[Angular2のボディにクラスを追加](https://stackoverflow.com/questions/39971762/add-class-to-body-on-angular2) –

答えて

0

動作しませんでした試みた:

.overflowHidden { 
    overflow: hidden 
} 

次にテンプレート内:

<a href="javascript:void(0)" 
    class="mail-ac-ico" 
    (click)="appComponent.isWriteEmail = true;" 
    [class.overflowHidden]="appComponent.isWriteEmail" 
    data-toggle="tooltip" 
    tooltip="Compose" 
    title="Compose"> 
    <img src="assets/images/icons/icon-open-email.png" alt="email icon"> 
</a> 
+0

ここにクラスを追加すると動作しません'body 'にオーバーフローを追加する –

0

typescriptのソリューションが複雑すぎて、javascript/Jqueryで試してみました。それが働いngOnInit()

email.component.ts

$('.mail-ac-ico').click(function() { 
    document.body.classList.add('backdrop'); 
}); 

にコードの下に追加

email.component.html

<a href="javascript:void(0)" 
     class="mail-ac-ico" 
     (click)="appComponent.isWriteEmail = true;" 
     data-toggle="tooltip" 
     tooltip="Compose" 
     title="Compose"> 
     <img src="assets/images/icons/icon-open-email.png" 
      alt="email icon"> 
</a> 

+0

' $ 'は何をしていますか? –

+0

jquery/javascriptを使用しています –

+0

@torazaburoもっと良い方法を提案できますか? –

関連する問題