我想根据从后端收到的数据动态创建“组件”。目标是在不使用服务器端模板的情况下显示我的应用程序的一部分:服务器不是在服务器端显示组件,而是发送包含应该显示哪些组件的 JSON 数据。
这是我到目前为止所得到的:
var module = angular.module('testApp', []);
module.controller('Ctrl1', ['$scope', function ($scope) {
$scope.test = "test 1";
}])
.controller('Ctrl2', ['$scope', function ($scope) {
$scope.test = "test 2";
}])
.controller('ComponentsController', ['$scope', function ($scope) {
// this is JSON returned by backend
$scope.components = [{
name: "Wd1",
controller: "Ctrl1",
}, {
name: "Wd2",
controller: "Ctrl2",
}];
$scope.test = "test";
}]);
我的观点:
<div ng-app="testApp">
<div ng-controller="ComponentsController">
<div ng-repeat="component in components">
<p>{{component.name}} - {{component.controller}}</p>
</div>
<div ng-repeat="component in components">
<p ng-controller="component.controller">{{test}}</p>
</div>
</div>
</div>
但是,我收到以下错误:
错误:参数“component.controller”不是函数,得到字符串
我试图编写一个指令,在编译期间分配控制器名称,但由于它是在编译期间完成的,它不适用于绑定......
这是一个小提琴:http: //jsfiddle.net/mathieu/bTQA5/