2016-07-20 8 views
18

現在、オンサイトSharepoint 2013環境で使用されている既存の小さなAngular 1プロジェクトがあります。私たちのコンテンツの大部分については、Sharepoint環境で公開ページを使用しています。アングル2コンポーネントをアトリビュートセレクタとともに使用できますか?

角度1の場合、属性名、タグ名、コメント、またはクラス名に制限するようにディレクティブを定義できます。作成したディレクティブのほとんどは、属性またはタグ名でした。選好はタグ名だったが、Sharepointの出版プラットフォームはを知らずに要素を取り除く。つまり、私たちの指示を公開ページに持ち込むために、属性を使用して残したということです。しかしAngular 2では、タグ名で実装されたコンポーネントしか見ていませんでした。

Angular 2では、コンポーネントを使用するために属性名を使用できますか?これは、Sharepoint発行プラットフォームの制限のために私たちの要件です。

ありがとうございました。

答えて

36

はい、@ComponentデコレータのselectorプロパティがCSS selector(またはサブセット)である:

selector'.cool-button:not(a)'

は、テンプレート内このディレクティブを特定するCSSセレクタを指定します。 サポートされるセレクタには、element,[attribute],.classおよび:not()が含まれます。
はありませんは親子関係セレクタをサポートしています。

出典:@Component継承Angular Cheat Sheet/Directive Configuration、。

あなたのような、[name-of-the-attribute](すなわち、CSS attribute selector)を使用することができますこの方法:

@Component({ 
    selector: "[other-attr]", 
    ... 
}) 
export class OtherAttrComponent { 

Seをdemo plunker here

通常の方法はCSS type (AKA element or tag) selectorです:

@Component({ 
    selector: "some-tag", 
    ... 
}) 

そして、それは名前some-tagでタグに一致します。

あなたもboth a tag or an attributeに一致するコンポーネントを持つことができます。

@Component({ 
    selector: "other-both,[other-both]", 
    template: `this is other-both ({{ value }})` 
}) 
export class OtherBothComponent { 

Demo plunkerは、すべての3つの例が含まれています。

[attributeName="attributeValue"]はサポートされていますか?

はい。しかし、引用符に気をつけてください。現在の実装では、セレクタ[attributeName="attributeValue"]は実際には<sometag attributeName='"attributeValue"'>と一致していますので、このアプローチを行う前にテストしてください。

+0

注:どのCSSセレクタも有効なので、 'selector: '.my-class-name'のようなクラスセレクタを使用することもできます。 – acdcjunior

+0

素晴らしい。ありがとう。私はAngular 2サイトを通過するときにこれを引き出すことができるという言及は見ませんでした。嬉しいことですがこれが可能です。 – TehOne

+2

は '[attributeName =" attributeValue "]'がサポートされていますか? –

4

selector: 'custom-element-name' 

用途:

selector: '[custom-attribute-name]' 

そして、あなたの親コンポーネントのテンプレート内の代わりに要素のセレクターを使用します。あなたが使用する必要がある場合は、単にこれを行う属性のように、基本的にこれは、単にCSSセレクタです:

@Component({ 
    selector: "my-tag[with-my-attribute]" 
}) 
1

@Componentデコレータ支持、要素セレクタ、属性セレクタとクラスセレクタのセレクタプロパティ:

1要素セレクター:

@Component({ 
selector: 'custom-element-name' 
}) 

用途:<app-servers></app-servers>

2属性セレクタ:

@Component({ 
selector: '[custom-element-name]' 
}) 

用途:<div app-servers></div>

3クラスセレクター:

@Component({ 
selector: '.custom-element-name' 
}) 

用途:<div class="app-servers"></div>

注:角度2は、ID及びPSEUDをサポートしていませんoセレクタ

関連する問題