2016-03-22 30 views
3

bootstrap Angular 2 on a DOM elementは角1のように可能ですか? Angular 1では、例えば<head>のタイトルタグを変更することができました。角2では、<html>タグにmy-appを追加する必要があるようです。 plunkerを作成しました。角度1と角度2の両方がブートストラップされています。ブートストラップ角度1のようなDOM要素の角度2

アンギュラ1

index.htmlを

<body> 
    <div ng-controller="MainCtrl"> 
    <h2>Hello {{name}}</h2> 
    </div> 
</body> 

app.js

angular.element(document).ready(function() { 
    angular.bootstrap(document.documentElement, ['plunker']); 
}); 

角度2

index.htmlを

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

main.ts

import {bootstrap} from 'angular2/platform/browser'; 
import {App} from './app'; 

bootstrap(App, []) 
    .catch(err => console.error(err)); 

答えて

2

Titleサービスがあるタイトルを変更します。これを挿入してタイトルを操作することができます。

タイトル以上の変更を直接サポートする予定です。

my-app<html>を追加すると、ルートコンポーネントのセレクタに一致するタグ内のHTMLを消去するため、Angularではうまく機能しません。

+0

返信いただきありがとうございます。タイトルタグは一例です。 index.htmlに2つの角2成分がある場合はどうでしょうか? のようにAngular 2を1つのブートストラップでブートストラップする方法を教えてください。私は推測するすべてのコンポーネントのためのブートストラップ(appname)をしない? –

+0

「ブートストラップを両方とも1つのブートストラップに入れよう」という意味が不明です。 2つのルート要素( 'index.html'に2つのコンポーネント)がある場合、それらは2つの異なるAngular2アプリケーションです。 Injectorインスタンスを共有するための回避策があります(自分自身では試していませんが、言及しました)。 –

+1

Angle1では、index.htmlのdivにコントローラを追加し、別のdivに別のコントローラを追加して、たとえばサービスを通じて通信できるようにすることができます。あるいは、DOMに{{1 + 2}}を書くだけで、Angularによってピックアップされます。あなたは 'my-app'コンテナ/コンポーネントにラップする必要はありませんでした。 –