2016-09-03 10 views
1

私は現在、Angular2に潜入しており、その中に潜在的な可能性をたくさん見ています。古典的なCMSでAngular2を使用する

Angular2はCMSプロジェクトの古典的なフロントエンド開発の良い候補です。コンテンツとコンテンツの構造はエディタ、つまりサーバからのものです。

私はAngular2テンプレートシステムについてたくさん読んだことがあります。 は今、私の質問に:今、すべてのアプリケーションコンテンツがどこかにすべてのためにAngular2テンプレートの中に隠されている

<body> 
    <my-app> 
    Loading... 
    </my-app> 
</body> 

あなたはそうのように、DOMにAppComponentsセレクタタグを追加することにより、Angular2アプリを開始しますコンポーネント。現実の世界では

CMS DOM内の出力のすべてのコンテンツの情報を、そうたい:

<body> 
    <my-app> 
    <editor-content> 
     <h1>Some articles heading</h1> 
     <p>Lorem ipsum dolor sit amet.</p> 
     <a href="#">A fancy link</a> 
    </editor-content> 
    </my-app> 
</body> 
Angular2が開始

は、すべての初期コンテンツはAppComponentで定義されたテンプレートによって捨て、交換などのあります。

AppComponentに、CMSのコンテンツを使用して初期化する必要があることをどのように伝えることができますか? これを達成する方法さえありますか?

答えて

0

すぐに使用することはできません。

CMSにすべての関連データをグローバル変数に入れることをお勧めします。あなたはそれをサービスで消費することができます。

<head> 
    <script> <!-- this could go in the body, too. As long as it's loaded before angular --> 
    window.myCMSData = JSON.parse(jsonEncodedDataFromCMS); 
    </script> 
</head> 

<body> 
    <my-app></my-app> 
</body> 

サービス:

@Injectable() 
export class CMSDataService{ 
    data: any; //or whichever type your data is. 

    constructor(){ 
    this.data = window.myCMSData; 
    } 
} 

あなたはいつものようにangular2サービスのすべての事業にデータを移動した後。

-

これは、REST APIを使用することにより、よりエレガントに行うことができるが、この方法では正常に動作します、あなたは追加のセットアップに苦労する必要はありません。

関連する問題