2017-04-24 7 views
3

私はちょうど1ページのアプリケーションを作っているわけではありませんが、むしろ、ユーザーがウェブサイトにタグを置くことができるように、角型のアプリケーションを作成して、角型のアプリケーションがタグを認識し、それに従ってコンポーネントを実装するようにします。元のウェブサイトの内容を置き換えずにAngular 2でアプリをブートストラップする方法は?

のは、私は一つの成分だけtestを実装角度アプリを持っているとしましょう、ページ上の任意の場所にコンポーネントを配置することが可能でなければなりません:

<body> 
    ... 
    <test></test> 
    ... 
</body> 

またはこのような:

<body> 
    <div> 
     ... 
     <test></test> 
     ... 
    </div> 
</body> 

など。

しかし、body DOMエレメントにAppモジュールをブートストラップすると、bodyの全内容が置き換えられます。私が必要とするのは、ページの他のコンテンツを置き換えずに、アプリケーションに1つのAngularコンポーネントを実装する方法です。

templateRefelementRefまたはviewContainerRefの一部を注入して操作するのが適切な方法だと思いますが、どちらが正確かどうかわかりませんし、どうすればよいでしょうか。

ヘルプありがとうございました!

+0

問題は[this](https://www.reddit.com/r/Angular2/comments/424nwn/using_angular_2_without_it_being_a_single_page_app/)に似ていますが、例のコードは廃止されています。 – nakajuice

+0

あなたのページの一部にAngularを実行することができますが、角度の目的のためにDOMツリー全体を定義する必要があります –

+0

@ Maximusこの質問のように、回避する方法はありません:http: //stackoverflow.com/questions/34993936/angular-2-it-is-possible-to-bind-the-app-component-in-existing-dom-with-era?それはAngularJSの魅力のように働いていたので、AngularJSがそれを忘れることなく、それを明示的に教えることなく行うことができないので、私は新しいAngularを使うことができないということに少し不満を感じます。 – nakajuice

答えて

1

も参照してくださいがありますこの特定のタイプのアプリケーションでは、 Reactは、既存のページに小さな部分を追加したい場合、おそらくあなたが探しているMVCです。それ以外の場合は、おそらくjqueryなどを使用してコーディングしたいだけです。 Angular2/4は、既存のものに追加されたものとして実際には機能しません。大規模なWebアプリケーション開発用に作られています(したがって、初期のアプリケーションサイズが大きい)。

Angular2/4を本当に使いたい場合は、前のコードをAngular Frameworkに転送したいと思うでしょう。古いページをAngular2/4 Frameworkに転送するか、Angularコードを書き直す必要があります。

申し訳ありませんが、これはあなたが聞いていた答えではないと確信しています。

+0

巨大な初期のアプリケーションサイズはありません。私はTypeScriptを使用していないし、実際には知ることができませんが、かなり前にベンチマークから見たものは、最初のアプリケーションのサイズは巨大ではありません(少なくとも、細分化、ツリーシェイキングなどで適切に構築されていない場合)。 –

+1

emberと比較すると、それは5倍以上に反応するのと比較して、ほぼ2倍のサイズです。(最後に、rxで確認しました。それはまだ比較的小さく、間違ってはいませんが、それは他のMVCフレームワークよりもずっと大きくなっています。同時に、より大きなコードベースを得るにつれ、より効率的になる傾向があります(大きなアプリケーションは他のMVCよりも小さくなります)。 –

関連する問題