找到一些使用object通过指令创建动态字段的解决方案。也可以创建动态指令
var app = angular.module('app', []);
app.directive('field', function() {
return {
restrict: "E",
scope: {
placeholder: '=',
label: '=',
id: '=',
fielddata: '=',
template: '='
},
link: function(scope, elem, attr) {
scope.Options = {
id: scope.$id + '_' + scope.id,
label: scope.label,
placeholder: scope.placeholder
};
scope.contentUrl = scope.template + '.html';
},
template: '<div ng-include="contentUrl"></div>'
}
});
选中此plunker
动态指令,按预期生成字段,但其值不会按照预期在单独的字段中由ajax服务预先填充。相反,它将ID作为其值。
请建议。
答案 0 :(得分:1)
您希望它显示什么?在Ctrl1
控制器中,您可以定义这样一个动态模板:
html: '<div ng-repeat="elem in t.elements"><field id="elem.id" fieldData="elem.id" label="elem.label" template="elem.template_name" placeholder="elem.placeholder"></field></div>'
注意fieldData="elem.id"
属性。您的field
指令显示通过fielddata
属性提供的值。你确实为它提供了元素id
。