0

角度のあるウィジェットを既存の非角度アプリに追加しようとしています。問題は、これらのウィジェットが Angular によって追加されず、ほとんどが非 Angular スクリプトによって DOM に挿入されることです。

私が最初に考えたのはangular.bootstrap、すべてのウィジェットに使用することでした。しかし、そのアプローチの問題は、ウィジェット間でサービスを共有できないことです。そのため、それを行う代わりに、Angular アプリを一度ブートストラップし、ウィジェットごとにコントローラーを手動でロードしたいと考えています。

これは、私が成功せずに試してきたサンドボックスjsbinです

サービスを共有しながら、app1手動および自動で作成しようとしています。app2sharedThing

4

2 に答える 2

0

アプリの設定で

app.config(function($controllerProvider) {
app.register =
    {
        controller: $controllerProvider.register

    };
}

次に、コントローラー関数を宣言した後 app.register.controller('CtrlName',CntrlFn]);

ダンはそれについて素晴らしい記事を書いていました。http://weblogs.asp.net/dwahlin/archive/2013/05/22/dynamically-loading-controllers-and-views-with-angularjs-and-requirejs.aspx

于 2014-02-28T18:20:44.733 に答える
0

さて、私は私の答えを見つけました。

以前に解決したかどうかはわかりませんが$apply、入力を手動で変更せずに変更を確認するには、要素を再コンパイルした後に を呼び出す必要がありました。また、DOM の外側の要素を使用して angular アプリを初期化できること、およびルート要素の外側の要素をコンパイルできることも発見しました。それは私が達成しようとしていることに最適です。

とにかく、これはコードが機能するjsBinです。

于 2014-02-28T19:39:31.760 に答える