我可以实现类似的内容:
$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? p>
仪表板上可能有许多小部件
答案 0 :(得分:4)
正在开发一个项目,通过AngularJS实现仪表板功能。
特点:
运行演示http://nickholub.github.io/angular-dashboard-app
演示源代码https://github.com/nickholub/angular-dashboard-app
Dashboard指令本身https://github.com/nickholub/angular-ui-dashboard
答案 1 :(得分: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上等)。希望当支持自定义注射器时,我们可以转向它。
答案 2 :(得分:0)
为什么不使用单个控制器(具有showDashboard方法的控制器),而不是使用动态控制器。 使用ng-include
添加动态控制器将导致嵌套控制器,这是非法的。而不是使用ng-include作为属性,而是将其用作元素。
<ng-include src="dashboardPath"></ng-include>