2012-12-05 17 views
11

をサーバー側のWebフレームワークユーザー(私はDjangoを使用しています)としてテンプレートが整理される方法が好きです。基本テンプレートのページタイトル、css、js、ヘッダー、およびフッターはブロックとして定義され、子テンプレートで上書きできます。angular.jsのテンプレート - 継承

これを行う角度の仕組みは何ですか?

もちろん、各ページの内容はng-viewで提供されていますが、それ以外はあまりできません。例えばタイトルタグはビューの外にあり、動的に変更することはできません。

テンプレートがどのように整理されているかを見るには、本格的なプロジェクトのサンプルコードを教えてください。ほとんどのサンプルプロジェクトは小規模であり、テンプレートに継承する必要はありません。

答えて

6

Djangoのテンプレートは本当に素晴らしいですが、Angularは主にSPA(シングルページアプリケーション)を構築することを意図しているので、概念的に異なります。典型的なAngularプロジェクトでは、サーバー側のフレームワークで基本テンプレートを生成し、それ以外の場合はRoutingをAngularに渡し、コンテンツセクションは条件に基づいてルートに基づいて組み込みます。

DjangoとAngularテンプレートの間にある類似点の1つはng-includeディレクティブで、再利用可能なhtmlのビットを吸い取ることができます。しかし、Djangoの{{block}}や{{block super}}システムには何もありません。

{{ブロックの頭出し}}ではなく、特別なCSS/javascriptを使用するカスタムディレクティブを書くことができます。

ダイナミックタイトルタグの場合は、コントローラ要素がhead要素の上に設定されていることを確認する必要があります。そうでないと、範囲外になり、到達不能になります。私たちは、基本テンプレートでこのようにそれを実行します。

<title data-ng-bind="title">Oursite</title> 

し、そのURLのためのコントローラで:thisスレッドで

$rootScope.title = 'Dashboard | Oursite'; 

他の提案のアプローチ。

4

翡翠、ハンドルバー、およびDjangoからインスピレーションを受けたangular-blocksをご覧ください。より簡単な場合はng-layoutです。

+0

私は角度ブロックを使って試しましたが、1時間苦労しましたが機能しませんでした。私を助けてくれますか? –

関連する問題