2016-06-29 8 views
3

私はangular1でアプリケーションをビルドしましたが、既にロードされているDOM要素にディレクティブを持たせることができました。ロードされたhtmlからビルドされ、内部では、ロードされたhtmlからのディレクティブをロードしたり、URLからロードすることができます。テンプレート/テンプレートのないAngular 2 Bootsrapアプリコンポーネントはhtmlで提供されます

私はbootsrapアプリケーションにしているようですが、テンプレート/ templateURLが必要なコンポーネントを使用する必要があります。私は別々のmenuesや他の一般的なものをロードしたくないので、ネッセルではないと思います。むしろそれをサーバレベルで行い、その後それを別々に繰り返す。どのように私はangular2でこれを達成することができるか誰も知っていますか?

答えて

3

Angular2では、コンポーネントをブートストラップする必要があり、コンポーネントにはビューが必要です。ディレクティブはブートストラップできません。ディレクティブは動的に追加または削除することはできず、コンポーネントビューの静的HTMLがセレクタに一致する場合にのみ適用されます。

私にとっては、あなたのユースケースではAngular1が適していると思います。コンポーネントが最初にインスタンス化されるときに

+0

答えをありがとう。あなたが基本的に言っているのは、angular2では私の最初のボディコンテンツを取得するためにパラレルリクエストを実行する必要があるということです。 – mirazasx

+0

申し訳ありませんが、私はあなたが「パラレルリクエストを実行するためのアベニュー」への私の答えからどのように結論づけるのか分かりません。あなたは何を意味するのかもう少し説明できますか? –

+0

最初のリクエストで、私はページ全体を読み込みます - javascript、metaなどですが、 htmlはありません。その後bootsrtapが起動すると、html DOMごとにディレクティブとその他のコンポーネントを持つために、 html(コンポーネントがロードされます)をロードする必要があります。私が間違っていると教えてください。それを解決する方法があります。 – mirazasx

2

あなたは...

変化検出器をディレクティブを持っていますが、コンポーネントをブートストラップする必要があります前に、ギュンターZö[email protected]として挙げることができますが作成されます。

class Greeter { 
    greet(name:string) { 
    return 'Hello ' + name + '!'; 
    } 
} 
@Directive({ 
    selector: 'needs-greeter' 
}) 
class NeedsGreeter { 
    greeter:Greeter; 
    constructor(greeter:Greeter) { 
    this.greeter = greeter; 
    } 
} 
@Component({ 
    selector: 'greet', 
    viewProviders: [ 
    Greeter 
    ], 
    template: `<needs-greeter></needs-greeter>`, 
    directives: [NeedsGreeter] 
}) 
class HelloWorld { 
} 

詳細を参照してください:ここでは角度のドキュメントからNG2ディレクティブのexapleあるhttps://angular.io/docs/ts/latest/api/core/index/ComponentMetadata-class.html#!#constructor

はしかし、あることに注意してください:

各角度成分が単一@Component注釈が必要です。 @Componentアノテーションは、コンポーネントがインスタンス化される時点を指定し、 はそれがバインドするプロパティとhostListenersを指定します。

  • 角度成分がインスタンス化される

    は、コンポーネントのシャドウDOMを作成します。

  • は、選択したテンプレートをシャドーDOMにロードします。
  • は、プロバイダとビュープロバイダで設定されたすべての注射可能オブジェクトを作成します。
+0

私の問題は、全身HTMLをコンポーネントのtemplateUrl経由でロードしたくないということです。ロードする方が好きです最初のページリクエストで、次にjavascriptで引き継ぎます。私はangular1とやりとりしました。ユーザーは、角度を開始している間に何をクリックするかを考える余裕があります。Btwさん、ありがとうございました。 – mirazasx

関連する問題