16

2つのコントローラーを含むページがあります。1つはいわゆる「アプリ」のリストを管理し、もう1つは新しいAngularテンプレートをそのDiv要素のinnerHTMLに配置するものです。

<div ng-controller="appList"></div>
<div ng-controller="appPane"> Dynamic content should be loaded here! </div>

標準の{{expression}}バインディングを使用してみましたが、htmlでは機能しません。ng-bind-html-unsafeディレクティブ(innerhtmlをAppリクエストの戻り値にバインドする)も試しましたが、コントローラーはそうではありません。この新しいコード内で実行されます。

問題は、Bindingを使用することにより、Angularが問題のhtmlのコンテンツを再解析してAngularアプリとして使用しないことであるようです。動的コンテンツを解析する方法についてのアイデアはありますか?

4

3 に答える 3

26

$ compileサービスは、現在のスコープとともに再コンパイルしたい要素をフィードすると、私が探していたものを実行するようです。

私の情報源からの例:

var appPane = $('#AppPane');//JQuery request for the app pane element.
appPane.html(data);//The dynamically loaded data
$compile(appPane.contents())($scope);//Tells Angular to recompile the contents of the app pane.

これは私の問題を経験している人の助けになるはずです、私は願っています。

于 2012-07-03T20:43:20.057 に答える
6

anglejsの$routesとngViewを見てください。

非常に基本的な例を次に示します。

http://jsfiddle.net/pXpja/3/

于 2012-07-21T14:11:42.123 に答える
4

( AngularUIプロジェクトの)uiRouterモジュールを見てください。これは、ルートに非常に似ているが、それらをネストする機能などの他の優れた機能を備えた状態の概念を追加します。例えば:

$stateProvider
    .state('myState', {
        url: '/mystate',
        templateUrl: '...',
        controller: 'MyCtrl'
    })
    .state('myState.substate', {
        url: '/{substate}',
        templateUrl: '...',
        controller: 'MySubCtrl'
    });

MySubCtrlに行くたびにアクティブになり/mystate/something、その「何か」をパラメータとして使用できます(を参照$stateParams)。状態を任意のレベルにネストできます。

于 2014-02-04T00:49:03.207 に答える