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

4

有一个使用 AngularJS 实现仪表板功能的开发项目。

特征:

  • 添加/删除小部件
  • 小部件拖放
  • 任何指令都可以是一个小部件

运行演示http://nickholub.github.io/angular-dashboard-app

演示源代码https://github.com/nickholub/angular-dashboard-app

仪表板指令本身https://github.com/nickholub/angular-ui-dashboard

于 2014-01-15T07:46:59.203 回答
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 回答