2017-01-20 21 views
0

$routeProviderを使用して、複数のルートに対してAngularJsアプリケーション(複数のコントローラ、サービス、ディレクティブ、および実行方法を使用する)があるとします。今では1つのページで同じアプリケーションを使用する必要があります。異なるルートのテンプレートが同時に1つのページに表示されるようになりました。複数のルートアプリケーションを1つのページで実行する方法

別のiframesを使用することはできません。その理由は、ラッパーアプリケーションからcontrollers$scopeにアクセスすることが困難なためです。
これはiframeを使用せずに可能ですか?

+0

使用ディレクティブ? – Ankh

+0

@Ankhどのように?もっと説明できますか? – Reyraa

+0

この方法では何の成功も見られません。 –

答えて

1

あなたが探しているものはng-includeng-controllerです。 ng-includeを使用すると、それを含むブロックにhtmlを挿入し、ng-controllerを使用して、同じブロックのコントローラを挿入できます。私はiframeを使用しないことをお勧めします。これは悪い習慣であり、あなたはスコープにアクセスすることができず、角度に固有の多くの機能にアクセスすることはできません。

EDIT:あなたが実行を使用している、ので、()を使用すると、以下のアプローチ試すことができます機能:

同じrouteProviderを維持し、あなたはあなたにスクリプトタグにあなたのHTMLテンプレートファイルの内容を移動することができますindex.htmlを以下のようなので:あなたは

<script type="text/ng-template" id="one.tpl.html"> 
//Your html template code goes here 
</script> 
<script type="text/ng-template" id="two.tpl.html"> 
//Your html template code goes here 
</script> 

はapp.js:

$routeProvider. 
     when('/', { 
     templateUrl: 'one.tpl.html', //points to the content of the script tag in your index.html file 
     controller: 'onetplCtrl' 
     }). 
     when('/edit',{ 
     templateUrl:'two.tpl.html', //points to the content of the script tag in your index.html file 
     controller:'twotplCtrl' 
     }). 
     otherwise({ 
     redirectTo: '/' 
     }); 
+0

これは私の最初のアイデアでした。問題はアプリケーションで重要な役割を果たすアプリケーションで 'run()'メソッドを使用していることです。私はこのアプローチで動作させるための解決策を見つけることができません。 – Reyraa

+0

次に、ng-templateを使用して特定のテンプレートを$ templateCacheにロードすることができます。これはhtmlファイルへの通常の参照のように使用でき、コントローラをこのテンプレートに向けるngRouteと共に、routeProviderのすべてを宣言するのと同じように動作します –

+0

@Reyraaは編集答えを –

関連する問題