2016-11-30 7 views
0

私はAngular 2 Appsでコンポーネントを非表示にする機能を作成しようと考えています。私は*ngIfまたはngClassを使用することを考えましたが、これはコードを書くのが面倒です。私は今、DOMにアクセスするためのサービスを作成し、グローバルにコンポーネントを表示したり隠すことができると考えています。Angular 2のサービスを使用してDOMにアクセスするにはどうすればよいですか?

DomService.show('my-component-1') 

使用せずにネイティブの角度2を使用して、そうすることが可能ですが、以下のように、私はサービスの機能を持っていると思い

<my-component-1></my-component-1> 
<my-component-2></my-component-2> 
<my-component-3></my-component-3> 
<my-component-4></my-component-4> 

を次のように例えば、私はDOMを持っています純粋なjavascriptまたはjQuery?

+0

「angular {Js/2}」の全体点です。あなたのロジック(コンポーネント/サービス)のDOMロジックを扱わないでください。 DOMを操作する場合は、指示文で行います。しかし、あなたは間違っていると思うようにDOMを操作します。 – Maxime

+0

私はそれを認識しています。しかし、私はより良い、より効率的な方法を考えています。 – ljieyao

答えて

0

もちろん、角度は可能です。 しかし、あなたがしようとしているのは、angularjsで行う正しい方法ではありません。なぜなら、angularjsはデータをDOMにバインドするからです。

<my-component-1 ng-show="isHidden"></my-component-1> 
<my-component-2 ng-show="isHidden"></my-component-2> 
<my-component-3 ng-show="isHidden"></my-component-3> 
<my-component-4 ng-show="isHidden"></my-component-4> 

isHiddenの値を変更すると、すぐにDOMに影響します。

Official Document

+0

'ng-show'はangularJsであり、angular2ではありません。 – Maxime

+0

10個以上のコンポーネントがある場合、これは動作しません... – ljieyao

関連する問題