を書きます。 この注釈は、特定のコンポーネントにボディクラスを追加する必要があります。私はAngular2プロジェクトでそれを使用するために自分自身の注釈をしようと、今日は自分のAngular2注釈
だから、私は角度のソースコードを検索しましたが、それはどこで、どのように注釈が作成された参照してくださいので、難しいです。
export function BodyClass(classes: any): ClassDecorator{
classes = classes || {};
if(typeof classes === 'string'){
classes = {classes};
}
return function changeBodyClass(){
console.log('ici');
}
}
そして、私のコンポーネント:
import {Component} from "angular2/core";
import {RouterOutlet} from "angular2/router";
import {BodyClass} from "../core/annotations/body_class";
@Component({
selector: 'my-component',
template: `
<router-outlet></router-outlet>
`,
})
@BodyClass('test')
export class MyComponent{
}
注釈で私のコンソールログが正しく解雇が、私は「DOM」を使用したいた瞬間のために
は、私はこれを試してみましたクラスをangular2/src/platform/dom/dom_adapter
から私のクラスを追加するが、コンソールログ(それをインスタンス化する必要はありません)では未定義のDOMを使用します。
しかし、DOMクラスは私のコンポーネントに直接適しています。 ngOnInit関数でクラスを追加し、それらをngOnDestroyで削除します。
しかし、私は多くのコンポーネントでこの動作をしたい、と私は新しい注釈が最善の方法だと思います。
たぶん、あなたは、このためのより良いアイデアを持って?アノテーション上のDOMクラスを操作するには?
ありがとうございます!
謝辞Thierry。私はあなたの説明をあなたのplunkrをチェックし、私は戻ってきます;) – PallMallShow