11

サーバーサイドのWebフレームワークユーザー(私はDjangoを使用しています)として、テンプレートの編成方法が気に入っています。基本テンプレートのページタイトル、css、js、ヘッダー、およびフッターはブロックとして定義され、子テンプレートでオーバーライドできます。

これを行うAngularの方法は何ですか?

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

テンプレートがどのように編成されているかを確認するために、本格的なプロジェクトのサンプルコードを教えていただければ幸いです。そこにあるほとんどのサンプルプロジェクトは小さく、テンプレートに継承する必要はありません。

4

2 に答える 2

6

Djangoのテンプレートは非常に優れていますが、Angularは主にSPA(シングルページアプリケーション)の構築を目的としているため、概念が異なることを忘れないでください。典型的なAngularプロジェクトでは、サーバー側のフレームワークでベーステンプレートを生成し、ルーティングは他のすべてのAngularに渡され、コンテンツセクションはルートに基づいて条件付きで含まれます。

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

{{block extrahead}}を使用する代わりに、追加のcss/javascriptを取り込むカスタムディレクティブを作成できます。

動的タイトルタグの場合、コントローラー要素がヘッド要素の上に設定されていることを確認する必要があります。そうしないと、スコープ外になり、到達できなくなります。基本テンプレートでは、次のようにします。

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

そして、そのURLのコントローラーで:

$rootScope.title = 'Dashboard | Oursite';

このスレッドで提案されている他のアプローチ。

于 2012-12-05T21:23:36.853 に答える
4

Jade、Handlebars、Django、またはより単純なng-layoutに触発されたangular-blocksを見てください。

于 2014-03-26T15:29:43.583 に答える