2016-10-25 10 views
0

CSSルールを適用するために、NG2ディレクティブにクラス名を追加したいと思います。次のコンポーネントを考える:Angular2ディレクティブにクラス名を追加する方法

@Component({ 
    moduleId: module.id, 
    selector: 'search-form', 
    templateUrl: 'search-form.component.html', 
    styleUrls: [ 'search-form.component.css'] 
}) 

私はこの試みた:

search-form { 
    width:100%; 
    display:block; 
} 

をしかし、それは動作しませんでした。

search-formにクラスを追加するにはどうすればよいですか?

+0

CSSクラスまたはES6クラス? – danday74

+0

CSS、スタイリング用 - コンテナ(検索フォーム)を100%の幅にする必要があります。例えば、 – Yuvals

+0

@Yuvalsあなたがテンプレートを*使用するテンプレートでそれを行う必要があります: ''と入力します。 – jonrsharpe

答えて

2
@Component({ // or @Directive({ 
    // use `host:` or `@HostBinding()` (not both) 
    // host: {'[class.someclass]': 'true'} 
}) 
class SearchFormComponent { 
    @HostBinding('class.someclass') 
    someClass = true; 
} 

おそらくあなたは、私がその一例を示すことができsearch-form.component.css

:host { 
    width:100%; 
    display:block; 
} 
+0

:この場合のホストとは何ですか?私は子供を指すべきですか:ホスト? – Yuvals

+0

':host'はコンポーネント自体を指しています - コンポーネントをホストするDOM要素。あなたの質問から、実際にあなたの問題が何であるかはわかりません。より多くの情報を提供すれば、より良い答えを提供できるかもしれません。 –

+1

:ホストは「自己」スタイルで動作しました。ありがとう! – Yuvals

0

あなたは、あなたのスタイルシートでのCSSクラスを宣言...検索form.component.css

、あなたのスタイルシート内のコンポーネントをターゲットにする場合は、あなたができる...

search-form { 
    width:100%; 
    display:block; 
} 

この意志タグsearch-formを持つターゲット要素。

Angular2はコンポーネントに基づいているため、コンポーネント内の要素のみを対象としています。実際の要素自体をターゲットにするかどうかはわかりませんが、それはそうだと思います。

+0

これは私のために働かなかった – Yuvals

-1

に、このCSSを追加することによって、「自己」にスタイルを追加することを意味します。

まず、スタイルシートを作成します。 like

<style> 
.red 
{ 
color:red; 
} 
.blue 
{ 
color:blue; 
} 
</style> 

次に、HTMLにangle.min.jsとともにスタイルシートを含め、以下のようにドロップダウンを作成します。

<select ng-model="a"> 
<option value="red">red</option> 
<option value="blue">blue</option> 

</select> 

次に、以下のようにH1タグを作成します。

<h1 ng-class="a">Header color</h1> 

注意。 HTMLはあなたが作成するng-appのdiv内になければなりません。

これが役に立ちます。ではごきげんよう。

+0

質問はAngular2についてです。あなたの答えはAngularJSのようです。 –

関連する問題