1

私は最近angularjsを使い始め、基本を理解しています。アカウントアプリ、メールアプリ、ニュースアプリなど、個別のangularjsアプリに分割されたプロジェクトがあります。これらのアプリはそれぞれ独自のangularモジュールです。

通知アプリを追加し、その特定のページの他のアプリと連携してその通知アプリをすべてのページで実行したい場合、モジュールをどのように設計すればよいでしょうか? *私の主な懸念は、angular では 1 つの ng-view しか許可されないため、そのページのメイン アプリ用に 1 つ、通知用に別のビューを作成できないことです。

4

2 に答える 2

0

現在、各アプリは 1 つの ng-view のみをサポートしていますが、次のようにして、ページ内のさまざまな要素に対して (それぞれ独自の ng-view を持つ) 必要な数のアプリケーションを手動でブートストラップできます。

angular.bootstrap(document.getElementById('main_container'), ['my-app']);

これを jQuery と組み合わせて、いつブートストラップされたかを知ることができるようにし、ng-controller も追加します。

$(function () {
    $('#main_container').attr('ng-controller', 'MainCtrl')
    $.when(angular.bootstrap(document.getElementById('main_container'), ['my-app'])).done( function() {
        $('body').show()
    })
});

アプリ間で通信したい場合は、Angular の window のバージョンでそれを行う必要があります: $window とここで説明されているイベントまたはサービス:複数の angular.js アプリ間で単一のサービスを共有する

于 2013-07-20T03:53:10.173 に答える
0

Angularのドキュメントが言うように。

ディレクティブはアプリケーションのルートを指定し、通常はページのルートに配置されます。ngApp は、アプリケーションをブートストラップする最も簡単な方法です。

angular アプリはそのモジュールを定義しますが、他のモジュールにも依存する可能性があります。したがって、通知の例は、アプリの依存関係ではなく、モジュールの依存関係です。

次のような通知用のモジュールを作成します

var notificationModule=angular.module('notification', []);

コントローラー、ディレクティブ、フィルター、サービスなどの複数のサブ要素を登録します。

次に、このモジュールを依存関係として、次のような他のモジュールに追加します。

var customerModule=angular.module('customer', ['notification']);

notificationにリンクされているモジュールだけでなく、任意のモジュールに依存関係を登録できますng-app

HTML構造は、メインビューが含まれng-view、補助ビューがng-includeディレクティブを使用して含まれるようにする必要があります。ng-include srcプロパティはデータ バインディングをサポートしているため、メイン コンテンツが変更されたときに使用するテンプレートを交換できng-includeますng-view

于 2013-07-20T07:29:58.877 に答える