1

次のようなものを実装できますか:

    $scope.showDashboard = function () {
        $scope.dashboardPath = "/Widgets/Weather/View.htm";
        $scope.widgetController = 30;

        require(['/Widgets/Weather/Controller.js'], function (w) {               
            whatShouldIputHere = w;
        });


    };


 <div ng-include src="dashboardPath" ng-controller="whatShouldIputHere?"></div>

コントローラを ng-include に動的に割り当てることは可能ですか?

ダッシュボードには多くのウィジェットが存在する可能性があります

4

3 に答える 3

2

オープン ソースのhawtioプロジェクトで angularjs ベースのダッシュボードを作成しました。必要に応じて、ここでコードをヌードルできます。

https://github.com/hawtio/hawtio/tree/master/hawtio-web/src/main/webapp/app/dashboard

ダッシュボードのウィジェットごとに、子スコープ https://github.com/hawtio/hawtio/blob/master/hawtio-web/src/main/webapp/app/dashboard/js/dashboard.tsを使用してパーシャルを直接コンパイルします。 #L142

子スコープでカスタム インジェクションを使用できるようにするには、angularjs にパッチを適用する必要がありましたが。たとえば、子ウィジェットごとに $location の異なる実装を使用できるようにします (そのため、独自の実際の URL などであると見なされます)。カスタム インジェクターがサポートされたら、それに移行できることを願っています。

于 2013-02-13T11:49:31.690 に答える
0

動的コントローラーを使用する代わりに、単一のコントローラー(showDashboardメソッドを持つコントローラー)を使用しないのはなぜですか。で動的コントローラーを追加するng-includeと、ネストされたコントローラーになりますが、これは違法だと思います。また、属性としてng-includeを使用する代わりに、要素として使用します。

<ng-include src="dashboardPath"></ng-include>
于 2013-02-13T10:52:49.730 に答える